aboutsummaryrefslogtreecommitdiffstats
path: root/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20
diff options
context:
space:
mode:
Diffstat (limited to 'external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20')
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-0-1.js33
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-0-2.js32
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-1.js35
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-10.js42
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-11.js41
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-12.js40
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-13.js43
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-14.js41
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-15.js41
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-2.js35
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-3.js44
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-4.js42
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-5.js43
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-6.js41
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-7.js37
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-8.js37
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-9.js43
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-1.js45
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-2.js47
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-3.js41
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-4.js45
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-1.js44
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-10.js53
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-11.js47
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-12.js55
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-13.js51
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-14.js40
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-15.js48
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-17.js40
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-18.js38
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-19.js43
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-2.js36
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-3.js47
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-4.js44
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-5.js57
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-6.js46
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-7.js49
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-8.js54
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-9.js61
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-1.js40
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-10.js41
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-11.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-12.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-13.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-14.js60
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-15.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-16.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-17.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-18.js41
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-19.js47
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-2.js38
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-20.js47
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-21.js55
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-22.js61
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-23.js63
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-24.js43
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-25.js43
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-28.js44
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-29.js43
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-3.js40
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-4.js40
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-5.js40
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-6.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-7.js38
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-8.js40
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-9.js41
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-1.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-10.js45
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-11.js49
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-12.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-15.js53
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-2.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-3.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-4.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-5.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-6.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-7.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-8.js48
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-9.js52
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-1-s.js40
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-1.js38
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-10.js42
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-11.js41
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-12.js41
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-13.js41
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-14.js40
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-15.js42
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-16.js42
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-17.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-18.js41
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-19.js44
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-2.js41
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-21.js40
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-22.js40
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-23.js40
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-24.js40
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-27.js33
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-28.js33
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-29.js33
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-3.js42
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-30.js41
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-4.js44
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-5.js44
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-6.js43
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-7.js40
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-9.js41
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-1.js35
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-2.js41
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-3.js41
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-4.js41
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-5.js41
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-6.js43
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-7.js49
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-8.js56
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-1.js40
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-2.js45
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-3.js45
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-4.js41
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-5.js43
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-6.js47
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-7.js42
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-8.js42
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-9.js50
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-1.js42
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-10.js51
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-11.js50
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-12.js50
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-13.js50
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-14.js47
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-15.js56
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-16.js54
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-2.js47
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-3.js46
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-4.js52
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-5.js51
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-6.js54
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-7.js54
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-8.js55
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-9.js53
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-1.js40
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-10.js45
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-11.js51
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-12.js49
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-13.js57
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-14.js55
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-15.js51
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-16.js47
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-17.js43
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-18.js44
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-19.js47
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-2.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-20.js49
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-21.js48
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-22.js45
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-23.js44
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-25.js40
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-26.js47
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-27.js49
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-28.js58
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-29.js57
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-3.js46
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-30.js52
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-31.js55
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-4.js42
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-5.js57
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-6.js47
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-7.js47
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-8.js42
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-9.js45
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-1.js45
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-10.js36
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-11.js36
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-12.js36
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-13.js36
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-16.js38
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-17.js38
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-18.js38
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-19.js41
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-2.js43
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-20.js40
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-21.js46
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-22.js46
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-23.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-4.js45
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-5.js51
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-6.js43
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-7.js48
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-8.js42
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-9.js36
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-1.js38
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-2.js44
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-3.js48
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-4.js44
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-5.js45
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-6.js51
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1.js47
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-10.js36
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-11.js36
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-12.js36
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-13.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-14.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-15.js36
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-16.js36
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-17.js36
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-18.js36
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-19.js36
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-2.js41
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-20.js36
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-21.js36
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-22.js36
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-23.js36
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-24.js37
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-25.js36
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-26.js36
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-28.js36
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-29.js42
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-3.js41
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-30.js36
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-4.js41
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-5.js38
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-6.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-7.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-8.js39
-rw-r--r--external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-9.js36
224 files changed, 9703 insertions, 0 deletions
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-0-1.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-0-1.js
new file mode 100644
index 000000000..24863722a
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-0-1.js
@@ -0,0 +1,33 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-0-1.js
+ * @description Array.prototype.filter must exist as a function
+ */
+
+
+function testcase() {
+ var f = Array.prototype.filter;
+ if (typeof(f) === "function") {
+ return true;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-0-2.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-0-2.js
new file mode 100644
index 000000000..ea6cf4b5b
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-0-2.js
@@ -0,0 +1,32 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-0-2.js
+ * @description Array.prototype.filter.length must be 1
+ */
+
+
+function testcase() {
+ if (Array.prototype.filter.length === 1) {
+ return true;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-1.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-1.js
new file mode 100644
index 000000000..6b92ea5d8
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-1.js
@@ -0,0 +1,35 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-1.js
+ * @description Array.prototype.filter applied to undefined throws a TypeError
+ */
+
+
+function testcase() {
+ try {
+ Array.prototype.filter.call(undefined); // TypeError is thrown if value is undefined
+ return false;
+ } catch (ex) {
+ return ex instanceof TypeError;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-10.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-10.js
new file mode 100644
index 000000000..c1a00313f
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-10.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-10.js
+ * @description Array.prototype.filter applied to the Math object
+ */
+
+
+function testcase() {
+ function callbackfn(val, idx, obj) {
+ return '[object Math]' === Object.prototype.toString.call(obj);
+ }
+
+ try {
+ Math.length = 1;
+ Math[0] = 1;
+ var newArr = Array.prototype.filter.call(Math, callbackfn);
+ return newArr[0] === 1;
+ } finally {
+ delete Math[0];
+ delete Math.length;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-11.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-11.js
new file mode 100644
index 000000000..ebd0b43ca
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-11.js
+ * @description Array.prototype.filter applied to Date object
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return obj instanceof Date;
+ }
+
+ var obj = new Date();
+ obj.length = 1;
+ obj[0] = 1;
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr[0] === 1;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-12.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-12.js
new file mode 100644
index 000000000..23644c492
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-12.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-12.js
+ * @description Array.prototype.filter applied to RegExp object
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return obj instanceof RegExp;
+ }
+
+ var obj = new RegExp();
+ obj.length = 2;
+ obj[1] = true;
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+ return newArr[0] === true;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-13.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-13.js
new file mode 100644
index 000000000..9d54b5aef
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-13.js
@@ -0,0 +1,43 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-13.js
+ * @description Array.prototype.filter applied to the JSON object
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return '[object JSON]' === Object.prototype.toString.call(JSON);
+ }
+
+ try {
+ JSON.length = 1;
+ JSON[0] = 1;
+ var newArr = Array.prototype.filter.call(JSON, callbackfn);
+ return newArr[0] === 1;
+ } finally {
+ delete JSON.length;
+ delete JSON[0];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-14.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-14.js
new file mode 100644
index 000000000..15d9e76cc
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-14.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-14.js
+ * @description Array.prototype.filter applied to Error object
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return obj instanceof Error;
+ }
+
+ var obj = new Error();
+ obj.length = 1;
+ obj[0] = 1;
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr[0] === 1;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-15.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-15.js
new file mode 100644
index 000000000..7dc600017
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-15.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-15.js
+ * @description Array.prototype.filter applied to the Arguments object
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return '[object Arguments]' === Object.prototype.toString.call(obj);
+ }
+
+ var obj = (function () {
+ return arguments;
+ }("a", "b"));
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr[0] === "a" && newArr[1] === "b";
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-2.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-2.js
new file mode 100644
index 000000000..6b0611b2e
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-2.js
@@ -0,0 +1,35 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-2.js
+ * @description Array.prototype.filter applied to null throws a TypeError
+ */
+
+
+function testcase() {
+ try {
+ Array.prototype.filter.call(null);
+ return false;
+ } catch (ex) {
+ return ex instanceof TypeError;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-3.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-3.js
new file mode 100644
index 000000000..fd17e8930
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-3.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-3.js
+ * @description Array.prototype.filter applied to boolean primitive
+ */
+
+
+function testcase() {
+ function callbackfn(val, idx, obj) {
+ return obj instanceof Boolean;
+ }
+
+ try {
+ Boolean.prototype[0] = true;
+ Boolean.prototype.length = 1;
+
+ var newArr = Array.prototype.filter.call(false, callbackfn);
+ return newArr[0] === true;
+
+ } finally {
+ delete Boolean.prototype[0];
+ delete Boolean.prototype.length;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-4.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-4.js
new file mode 100644
index 000000000..4b2b3c6fa
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-4.js
+ * @description Array.prototype.filter applied to Boolean Object
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return obj instanceof Boolean;
+ }
+
+ var obj = new Boolean(true);
+ obj.length = 2;
+ obj[0] = 11;
+ obj[1] = 12;
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr[0] === 11 && newArr[1] === 12;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-5.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-5.js
new file mode 100644
index 000000000..d0a80b952
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-5.js
@@ -0,0 +1,43 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-5.js
+ * @description Array.prototype.filter applied to number primitive
+ */
+
+
+function testcase() {
+ function callbackfn(val, idx, obj) {
+ return obj instanceof Number;
+ }
+
+ try {
+ Number.prototype[0] = 1;
+ Number.prototype.length = 1;
+
+ var newArr = Array.prototype.filter.call(2.5, callbackfn);
+ return newArr[0] === 1;
+ } finally {
+ delete Number.prototype[0];
+ delete Number.prototype.length;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-6.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-6.js
new file mode 100644
index 000000000..bb2baf06d
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-6.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-6.js
+ * @description Array.prototype.filter applied to Number object
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return obj instanceof Number;
+ }
+
+ var obj = new Number(-128);
+ obj.length = 2;
+ obj[0] = 11;
+ obj[1] = 12;
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+ return newArr[0] === 11 && newArr[1] === 12;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-7.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-7.js
new file mode 100644
index 000000000..de7691a7a
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-7.js
@@ -0,0 +1,37 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-7.js
+ * @description Array.prototype.filter applied to string primitive
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return obj instanceof String;
+ }
+
+ var newArr = Array.prototype.filter.call("abc", callbackfn);
+
+ return newArr[0] === "a";
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-8.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-8.js
new file mode 100644
index 000000000..29efe89a0
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-8.js
@@ -0,0 +1,37 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-8.js
+ * @description Array.prototype.filter applied to String object
+ */
+
+
+function testcase() {
+ function callbackfn(val, idx, obj) {
+ return obj instanceof String;
+ }
+
+ var obj = new String("abc");
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr[0] === "a";
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-9.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-9.js
new file mode 100644
index 000000000..094834db7
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-9.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-9.js
+ * @description Array.prototype.filter applied to Function object
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return obj instanceof Function;
+ }
+
+ var obj = function (a, b) {
+ return a + b;
+ };
+ obj[0] = 11;
+ obj[1] = 9;
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr[0] === 11 && newArr[1] === 9;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-1.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-1.js
new file mode 100644
index 000000000..84680921b
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-1.js
+ * @description Array.prototype.filter doesn't mutate the Array on which it is called on
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj)
+ {
+ return true;
+ }
+ var srcArr = [1,2,3,4,5];
+ srcArr.filter(callbackfn);
+ if(srcArr[0] === 1 &&
+ srcArr[1] === 2 &&
+ srcArr[2] === 3 &&
+ srcArr[3] === 4 &&
+ srcArr[4] === 5)
+ {
+ return true;
+ }
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-2.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-2.js
new file mode 100644
index 000000000..c9c72fbc4
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-2.js
+ * @description Array.prototype.filter returns new Array with length equal to number of true returned by callbackfn
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj)
+ {
+ if(val % 2)
+ return true;
+ else
+ return false;
+ }
+ var srcArr = [1,2,3,4,5];
+ var resArr = srcArr.filter(callbackfn);
+ if(resArr.length === 3 &&
+ resArr[0] === 1 &&
+ resArr[1] === 3 &&
+ resArr[2] === 5)
+ {
+ return true;
+ }
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-3.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-3.js
new file mode 100644
index 000000000..cc1e01563
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-3.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-3.js
+ * @description Array.prototype.filter - subclassed array when length is reduced
+ */
+
+
+function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = 1;
+
+ function cb(){return true;}
+ var a = f.filter(cb);
+
+ if (Array.isArray(a) &&
+ a.length === 1) {
+ return true;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-4.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-4.js
new file mode 100644
index 000000000..1b5875a44
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-4.js
+ * @description Array.prototype.filter doesn't visit expandos
+ */
+
+
+function testcase() {
+
+ var callCnt = 0;
+ function callbackfn(val, idx, obj)
+ {
+ callCnt++;
+ }
+ var srcArr = [1,2,3,4,5];
+ srcArr["i"] = 10;
+ srcArr[true] = 11;
+
+ var resArr = srcArr.filter(callbackfn);
+ if(callCnt == 5)
+ {
+ return true;
+ }
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-1.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-1.js
new file mode 100644
index 000000000..b71c2f6f4
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-1.js
+ * @description Array.prototype.filter applied to Array-like object, 'length' is own data property
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return obj.length === 2;
+ }
+
+ var obj = {
+ 0: 12,
+ 1: 11,
+ 2: 9,
+ length: 2
+ };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 2;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-10.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-10.js
new file mode 100644
index 000000000..5500615e3
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-10.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-10.js
+ * @description Array.prototype.filter applied to Array-like object, 'length' is inherited accessor property
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return obj.length === 2;
+ }
+
+ var proto = {};
+
+ Object.defineProperty(proto, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ var newArr = Array.prototype.filter.call(child, callbackfn);
+ return newArr.length === 2;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-11.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-11.js
new file mode 100644
index 000000000..0fa0037ca
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-11.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-11.js
+ * @description Array.prototype.filter applied to Array-like object, 'length' is own accessor property without a get function
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return true;
+ }
+
+ var obj = {
+ 0: 11,
+ 1: 12
+ };
+ Object.defineProperty(obj, "length", {
+ set: function () { },
+ configurable: true
+ });
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+ return newArr.length === 0 && !accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-12.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-12.js
new file mode 100644
index 000000000..36e54c6de
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-12.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-12.js
+ * @description Array.prototype.filter - 'length' is own accessor property without a get function that overrides an inherited accessor property
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return true;
+ }
+
+ try {
+ Object.defineProperty(Object.prototype, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ var obj = { 0: 12, 1: 11 };
+ Object.defineProperty(obj, "length", {
+ set: function () { },
+ configurable: true
+ });
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+ return newArr.length === 0 && !accessed;
+ } finally {
+ delete Object.prototype.length;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-13.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-13.js
new file mode 100644
index 000000000..4ac303959
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-13.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-13.js
+ * @description Array.prototype.filter applied to the Array-like object that 'length' is inherited accessor property without a get function
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return true;
+ }
+
+ var proto = {};
+ Object.defineProperty(proto, "length", {
+ set: function () { },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[0] = 11;
+ child[1] = 12;
+
+ var newArr = Array.prototype.filter.call(child, callbackfn);
+ return newArr.length === 0 && !accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-14.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-14.js
new file mode 100644
index 000000000..62112c97b
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-14.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-14.js
+ * @description Array.prototype.filter applied to the Array-like object that 'length property doesn't exist
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return true;
+ }
+
+ var obj = { 0: 11, 1: 12 };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+ return newArr.length === 0 && !accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-15.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-15.js
new file mode 100644
index 000000000..182d1d58d
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-15.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-15.js
+ * @description Array.prototype.filter - 'length' is property of the global object
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return obj.length === 2;
+ }
+
+ try {
+ var oldLen = fnGlobalObject().length;
+ fnGlobalObject()[0] = 12;
+ fnGlobalObject()[1] = 11;
+ fnGlobalObject()[2] = 9;
+ fnGlobalObject().length = 2;
+ var newArr = Array.prototype.filter.call(fnGlobalObject(), callbackfn);
+ return newArr.length === 2;
+ } finally {
+ delete fnGlobalObject()[0];
+ delete fnGlobalObject()[1];
+ delete fnGlobalObject()[2];
+ fnGlobalObject().length = oldLen;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-17.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-17.js
new file mode 100644
index 000000000..124da230a
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-17.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-17.js
+ * @description Array.prototype.filter applied to the Arguments object, which implements its own property get method
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return obj.length === 2;
+ }
+
+ var func = function (a, b) {
+ var newArr = Array.prototype.filter.call(arguments, callbackfn);
+ return newArr.length === 2;
+ };
+
+ return func(12, 11);
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-18.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-18.js
new file mode 100644
index 000000000..98a2b5800
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-18.js
@@ -0,0 +1,38 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-18.js
+ * @description Array.prototype.filter applied to String object, which implements its own property get method
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return obj.length === 3;
+ }
+
+ var str = new String("012");
+
+ var newArr = Array.prototype.filter.call(str, callbackfn);
+ return newArr.length === 3;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-19.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-19.js
new file mode 100644
index 000000000..0e9baa86b
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-19.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-19.js
+ * @description Array.prototype.filter applied to Function object, which implements its own property get method
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return obj.length === 2;
+ }
+
+ var fun = function (a, b) {
+ return a + b;
+ };
+ fun[0] = 12;
+ fun[1] = 11;
+ fun[2] = 9;
+
+ var newArr = Array.prototype.filter.call(fun, callbackfn);
+ return newArr.length === 2;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-2.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-2.js
new file mode 100644
index 000000000..1d7c55f74
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-2.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-2.js
+ * @description Array.prototype.filter - 'length' is own data property on an Array
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return obj.length === 2;
+ }
+
+ var newArr = [12, 11].filter(callbackfn);
+ return newArr.length === 2;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-3.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-3.js
new file mode 100644
index 000000000..89e087073
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-3.js
+ * @description Array.prototype.filter applied to Array-like object, 'length' is an own data property that overrides an inherited data property
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return obj.length === 2;
+ }
+
+ var proto = { length: 3 };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 2;
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ var newArr = Array.prototype.filter.call(child, callbackfn);
+ return newArr.length === 2;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-4.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-4.js
new file mode 100644
index 000000000..58f1e322e
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-4.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-4.js
+ * @description Array.prototype.filter - 'length' is own data property that overrides an inherited data property on an Array
+ */
+
+
+function testcase() {
+
+ var arrProtoLen;
+
+ function callbackfn(val, idx, obj) {
+ return obj.length === 2;
+ }
+
+ try {
+ arrProtoLen = Array.prototype.length;
+ Array.prototype.length = 0;
+ var newArr = [12, 11].filter(callbackfn);
+ return newArr.length === 2;
+ } finally {
+ Array.prototype.length = arrProtoLen;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-5.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-5.js
new file mode 100644
index 000000000..06b6de1bd
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-5.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-5.js
+ * @description Array.prototype.filter to Array-like object, 'length' is an own data property that overrides an inherited accessor property
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return obj.length === 2;
+ }
+
+ var proto = {};
+
+ Object.defineProperty(proto, "length", {
+ get: function () {
+ return 3;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ Object.defineProperty(child, "length", {
+ value: 2,
+ configurable: true
+ });
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ var newArr = Array.prototype.filter.call(child, callbackfn);
+ return newArr.length === 2;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-6.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-6.js
new file mode 100644
index 000000000..bf9142109
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-6.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-6.js
+ * @description Array.prototype.filter applied to Array-like object, 'length' is an inherited data property
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return obj.length === 2;
+ }
+
+ var proto = { length: 2 };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ var newArr = Array.prototype.filter.call(child, callbackfn);
+ return newArr.length === 2;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-7.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-7.js
new file mode 100644
index 000000000..08d0a88bb
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-7.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-7.js
+ * @description Array.prototype.filter applied to Array-like object, 'length' is an own accessor property
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return obj.length === 2;
+ }
+
+ var obj = {};
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ obj[0] = 12;
+ obj[1] = 11;
+ obj[2] = 9;
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+ return newArr.length === 2;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-8.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-8.js
new file mode 100644
index 000000000..7a8103c79
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-8.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-8.js
+ * @description Array.prototype.filter applied to Array-like object, 'length' is own accessor property that overrides an inherited data property
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return obj.length === 2;
+ }
+
+ var proto = { length: 3 };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+
+ Object.defineProperty(child, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ var newArr = Array.prototype.filter.call(child, callbackfn);
+ return newArr.length === 2;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-9.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-9.js
new file mode 100644
index 000000000..4073b16dd
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-9.js
+ * @description Array.prototype.filter applied to Array-like object, 'length' is an own accessor property that overrides an inherited accessor property
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return obj.length === 2;
+ }
+
+ var proto = {};
+
+ Object.defineProperty(proto, "length", {
+ get: function () {
+ return 3;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+
+ Object.defineProperty(child, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ var newArr = Array.prototype.filter.call(child, callbackfn);
+ return newArr.length === 2;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-1.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-1.js
new file mode 100644
index 000000000..e7b036ef0
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-1.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-1.js
+ * @description Array.prototype.filter - value of 'length' is undefined
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return true;
+ }
+
+ var obj = { 0: 0, 1: 1, length: undefined };
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 0 && !accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-10.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-10.js
new file mode 100644
index 000000000..6f7f89d84
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-10.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-10.js
+ * @description Array.prototype.filter - value of 'length' is a number (value is NaN)
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return true;
+ }
+
+ var obj = { 0: 9, length: NaN };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 0 && !accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-11.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-11.js
new file mode 100644
index 000000000..a250df377
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-11.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-11.js
+ * @description Array.prototype.filter - 'length' is a string containing a positive number
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = { 1: 11, 2: 9, length: "2" };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-12.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-12.js
new file mode 100644
index 000000000..099d7ea3b
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-12.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-12.js
+ * @description Array.prototype.filter - 'length' is a string containing a negative number
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = { 1: 11, 2: 9, length: "-4294967294" };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-13.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-13.js
new file mode 100644
index 000000000..ebc1208b3
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-13.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-13.js
+ * @description Array.prototype.filter - 'length' is a string containing a decimal number
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = { 1: 11, 2: 9, length: "2.5" };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-14.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-14.js
new file mode 100644
index 000000000..75a5a018e
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-14.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-14.js
+ * @description Array.prototype.filter - 'length' is a string containing +/-Infinity
+ */
+
+
+function testcase() {
+
+ var accessed1 = false;
+ var accessed2 = false;
+ var accessed3 = false;
+
+ function callbackfn1(val, idx, obj) {
+ accessed1 = true;
+ return true;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ accessed2 = true;
+ return true;
+ }
+
+ function callbackfn3(val, idx, obj) {
+ accessed3 = true;
+ return true;
+ }
+
+ var obj1 = { 0: 9, length: "Infinity" };
+ var obj2 = { 0: 9, length: "-Infinity" };
+ var obj3 = { 0: 9, length: "+Infinity" };
+
+ var newArr1 = Array.prototype.filter.call(obj1, callbackfn1);
+ var newArr2 = Array.prototype.filter.call(obj2, callbackfn2);
+ var newArr3 = Array.prototype.filter.call(obj3, callbackfn3);
+
+ return !accessed1 && newArr1.length === 0 &&
+ !accessed2 && newArr2.length === 0 &&
+ !accessed3 && newArr3.length === 0;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-15.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-15.js
new file mode 100644
index 000000000..fab06f973
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-15.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-15.js
+ * @description Array.prototype.filter - 'length' is a string containing an exponential number
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = { 1: 11, 2: 9, length: "2E0" };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-16.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-16.js
new file mode 100644
index 000000000..ad4968c0d
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-16.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-16.js
+ * @description Array.prototype.filter - 'length' is a string containing a hex number
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = { 1: 11, 2: 9, length: "0x0002" };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-17.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-17.js
new file mode 100644
index 000000000..2b360ff9e
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-17.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-17.js
+ * @description Array.prototype.filter - 'length' is a string containing a number with leading zeros
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = { 1: 11, 2: 9, length: "0002.00" };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-18.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-18.js
new file mode 100644
index 000000000..ee007e433
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-18.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-18.js
+ * @description Array.prototype.filter - value of 'length' is a string that can't convert to a number
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return true;
+ }
+
+ var obj = { 0: 9, length: "asdf!_" };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return !accessed && newArr.length === 0;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-19.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-19.js
new file mode 100644
index 000000000..15ba808d6
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-19.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-19.js
+ * @description Array.prototype.filter - value of 'length' is an Object which has an own toString method.
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = {
+ 1: 11,
+ 2: 9,
+ length: {
+ toString: function () {
+ return '2';
+ }
+ }
+ };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-2.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-2.js
new file mode 100644
index 000000000..3d8defc33
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-2.js
@@ -0,0 +1,38 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-2.js
+ * @description Array.prototype.filter applied on an Array-like object if 'length' is 1 (length overridden to true(type conversion))
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = { 0: 11, 1: 9, length: true };
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-20.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-20.js
new file mode 100644
index 000000000..aa2b1aef8
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-20.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-20.js
+ * @description Array.prototype.filter - value of 'length' is an Object which has an own valueOf method.
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = {
+ 1: 11,
+ 2: 9,
+ length: {
+ valueOf: function () {
+ return 2;
+ }
+ }
+ };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-21.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-21.js
new file mode 100644
index 000000000..7f2617bd2
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-21.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-21.js
+ * @description Array.prototype.filter - 'length' is an object that has an own valueOf method that returns an object and toString method that returns a string
+ */
+
+
+function testcase() {
+
+ var firstStepOccured = false;
+ var secondStepOccured = false;
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = {
+ 1: 11,
+ 2: 9,
+ length: {
+ valueOf: function () {
+ firstStepOccured = true;
+ return {};
+ },
+ toString: function () {
+ secondStepOccured = true;
+ return '2';
+ }
+ }
+ };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11 && firstStepOccured && secondStepOccured;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-22.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-22.js
new file mode 100644
index 000000000..9e1ad8b7b
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-22.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-22.js
+ * @description Array.prototype.filter throws TypeError exception when 'length' is an object with toString and valueOf methods that don�t return primitive values
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ var firstStepOccured = false;
+ var secondStepOccured = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return true;
+ }
+
+ var obj = {
+ 1: 11,
+ 2: 12,
+
+ length: {
+ valueOf: function () {
+ firstStepOccured = true;
+ return {};
+ },
+ toString: function () {
+ secondStepOccured = true;
+ return {};
+ }
+ }
+ };
+
+ try {
+ Array.prototype.filter.call(obj, callbackfn);
+ return false;
+ } catch (ex) {
+ return (ex instanceof TypeError) && !accessed && firstStepOccured && secondStepOccured;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-23.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-23.js
new file mode 100644
index 000000000..17b0779d0
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-23.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-23.js
+ * @description Array.prototype.filter uses inherited valueOf method when 'length' is an object with an own toString and inherited valueOf methods
+ */
+
+
+function testcase() {
+
+ var valueOfAccessed = false;
+ var toStringAccessed = false;
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var proto = {
+ valueOf: function () {
+ valueOfAccessed = true;
+ return 2;
+ }
+ };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+
+ child.toString = function () {
+ toStringAccessed = true;
+ return '1';
+ };
+
+ var obj = {
+ 1: 11,
+ 2: 9,
+ length: child
+ };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11 && valueOfAccessed && !toStringAccessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-24.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-24.js
new file mode 100644
index 000000000..dd25ea09f
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-24.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-24.js
+ * @description Array.prototype.filter - value of 'length' is a positive non-integer, ensure truncation occurs in the proper direction
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = {
+ 1: 11,
+ 2: 9,
+ length: 2.685
+ };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-25.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-25.js
new file mode 100644
index 000000000..0db039170
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-25.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-25.js
+ * @description Array.prototype.filter - value of 'length' is a negative non-integer, ensure truncation occurs in the proper direction
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = {
+ 1: 11,
+ 2: 9,
+ length: -4294967294.5
+ };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-28.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-28.js
new file mode 100644
index 000000000..2073dee38
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-28.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-28.js
+ * @description Array.prototype.filter - value of 'length' is boundary value (2^32)
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return true;
+ }
+
+ var obj = {
+ 0: 12,
+ length: 4294967296
+ };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return !accessed && newArr.length === 0;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-29.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-29.js
new file mode 100644
index 000000000..7e887cbba
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-29.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-29.js
+ * @description Array.prototype.filter - value of 'length' is boundary value (2^32 + 1)
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = {
+ 0: 11,
+ 1: 9,
+ length: 4294967297
+ };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-3.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-3.js
new file mode 100644
index 000000000..70b2d970c
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-3.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-3.js
+ * @description Array.prototype.filter - value of 'length' is a number (value is 0)
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return true;
+ }
+
+ var obj = { 0: 11, length: 0 };
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 0 && !accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-4.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-4.js
new file mode 100644
index 000000000..1d53450bd
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-4.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-4.js
+ * @description Array.prototype.filter - value of 'length' is a number (value is +0)
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return true;
+ }
+
+ var obj = { 0: 11, length: +0 };
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 0 && !accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-5.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-5.js
new file mode 100644
index 000000000..9f2faf954
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-5.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-5.js
+ * @description Array.prototype.filter - value of 'length' is a number (value is -0)
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return true;
+ }
+
+ var obj = { 0: 11, length: -0 };
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 0 && !accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-6.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-6.js
new file mode 100644
index 000000000..676fd8f23
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-6.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-6.js
+ * @description Array.prototype.filter - value of 'length' is a number (value is positive)
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = { 1: 11, 2: 9, length: 2 };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-7.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-7.js
new file mode 100644
index 000000000..513c354cd
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-7.js
@@ -0,0 +1,38 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-7.js
+ * @description Array.prototype.filter - value of 'length' is a number (value is negative)
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = { 1: 11, 2: 9, length: -4294967294 };
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-8.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-8.js
new file mode 100644
index 000000000..44a02b0da
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-8.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-8.js
+ * @description Array.prototype.filter - value of 'length' is a number (value is Infinity)
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return true;
+ }
+
+ var obj = { 0: 9, length: Infinity };
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 0 && !accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-9.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-9.js
new file mode 100644
index 000000000..f3f092244
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-9.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-9.js
+ * @description Array.prototype.filter - value of 'length' is a number (value is -Infinity)
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return true;
+ }
+
+ var obj = { 0: 9, length: -Infinity };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 0 && !accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-1.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-1.js
new file mode 100644
index 000000000..e898bd585
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-1.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-1.js
+ * @description Array.prototype.filter throws TypeError if callbackfn is undefined
+ */
+
+
+function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.filter();
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-10.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-10.js
new file mode 100644
index 000000000..825c867e6
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-10.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-10.js
+ * @description Array.prototype.filter - the exception is not thrown if exception was thrown by step 2
+ */
+
+
+function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ throw new SyntaxError();
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.filter.call(obj, undefined);
+ return false;
+ } catch (ex) {
+ return !(ex instanceof TypeError);
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-11.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-11.js
new file mode 100644
index 000000000..7c5a2d5ca
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-11.js
+ * @description Array.prototype.filter - the exception is not thrown if exception was thrown by step 3
+ */
+
+
+function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ return {
+ toString: function () {
+ throw new SyntaxError();
+ }
+ };
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.filter.call(obj, undefined);
+ return false;
+ } catch (ex) {
+ return !(ex instanceof TypeError);
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-12.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-12.js
new file mode 100644
index 000000000..e6dc6832f
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-12.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-12.js
+ * @description Array.prototype.filter - 'callbackfn' is a function
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 1) {
+ return val === 9;
+ }
+ return false;
+ }
+
+ var newArr = [11, 9].filter(callbackfn);
+ return newArr.length === 1 && newArr[0] === 9;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-15.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-15.js
new file mode 100644
index 000000000..71274e906
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-15.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-15.js
+ * @description Array.prototype.filter - calling with no callbackfn is the same as passing undefined for callbackfn
+ */
+
+
+function testcase() {
+ var obj = { 10: 10 };
+ var lengthAccessed = false;
+ var loopAccessed = false;
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ lengthAccessed = true;
+ return 20;
+ },
+ configurable: true
+ });
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ loopAccessed = true;
+ return 10;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.filter.call(obj);
+ return false;
+ } catch (ex) {
+ return (ex instanceof TypeError) && lengthAccessed && !loopAccessed;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-2.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-2.js
new file mode 100644
index 000000000..c9507011b
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-2.js
+ * @description Array.prototype.filter throws ReferenceError if callbackfn is unreferenced
+ */
+
+
+function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.filter(foo);
+ }
+ catch(e) {
+ if(e instanceof ReferenceError)
+ return true;
+ }
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-3.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-3.js
new file mode 100644
index 000000000..ab50ec755
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-3.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-3.js
+ * @description Array.prototype.filter throws TypeError if callbackfn is null
+ */
+
+
+function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.filter(null);
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-4.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-4.js
new file mode 100644
index 000000000..f75dd832a
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-4.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-4.js
+ * @description Array.prototype.filter throws TypeError if callbackfn is boolean
+ */
+
+
+function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.filter(true);
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-5.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-5.js
new file mode 100644
index 000000000..fbe158ceb
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-5.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-5.js
+ * @description Array.prototype.filter throws TypeError if callbackfn is number
+ */
+
+
+function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.filter(5);
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-6.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-6.js
new file mode 100644
index 000000000..b1f334e85
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-6.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-6.js
+ * @description Array.prototype.filter throws TypeError if callbackfn is string
+ */
+
+
+function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.filter("abc");
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-7.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-7.js
new file mode 100644
index 000000000..dd2107668
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-7.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-7.js
+ * @description Array.prototype.filter throws TypeError if callbackfn is Object without [[Call]] internal method
+ */
+
+
+function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.filter(new Object());
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-8.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-8.js
new file mode 100644
index 000000000..1b80ac635
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-8.js
+ * @description Array.prototype.filter - side effects produced by step 2 are visible when an exception occurs
+ */
+
+
+function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+
+ var accessed = false;
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ accessed = true;
+ return 2;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.filter.call(obj, null);
+ return false;
+ } catch (ex) {
+ return ex instanceof TypeError && accessed;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-9.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-9.js
new file mode 100644
index 000000000..ef1ddb60c
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-9.js
+ * @description Array.prototype.filter - side effects produced by step 3 are visible when an exception occurs
+ */
+
+
+function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+
+ var accessed = false;
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ return {
+ toString: function () {
+ accessed = true;
+ return "2";
+ }
+ };
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.filter.call(obj, null);
+ return false;
+ } catch (ex) {
+ return ex instanceof TypeError && accessed;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-1-s.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-1-s.js
new file mode 100644
index 000000000..24033ac36
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-1-s.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2010 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-1-s.js
+ * @description Array.prototype.filter - thisArg not passed to strict callbackfn
+ * @onlyStrict
+ */
+
+
+function testcase() {
+ var innerThisCorrect = false;
+
+ function callbackfn(val, idx, obj) {
+ "use strict";
+ innerThisCorrect = this===undefined;
+ return true;
+ }
+
+ [1].filter(callbackfn);
+ return innerThisCorrect;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-1.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-1.js
new file mode 100644
index 000000000..7d45eee85
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-1.js
@@ -0,0 +1,38 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-1.js
+ * @description Array.prototype.filter - thisArg is passed
+ */
+
+
+function testcase() {
+ this._15_4_4_20_5_1 = false;
+ var _15_4_4_20_5_1 = true;
+
+ function callbackfn(val, idx, obj) {
+ return this._15_4_4_20_5_1;
+ }
+ var srcArr = [1];
+ var resArr = srcArr.filter(callbackfn);
+ return resArr.length === 0;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-10.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-10.js
new file mode 100644
index 000000000..e23d946d8
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-10.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-10.js
+ * @description Array.prototype.filter - Array Object can be used as thisArg
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ var objArray = new Array(10);
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this === objArray;
+ }
+
+
+ var newArr = [11].filter(callbackfn, objArray);
+
+ return newArr[0] === 11 && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-11.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-11.js
new file mode 100644
index 000000000..92d68d426
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-11.js
+ * @description Array.prototype.filter - String Object can be used as thisArg
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ var objString = new String();
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this === objString;
+ }
+
+ var newArr = [11].filter(callbackfn, objString);
+
+ return newArr[0] === 11 && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-12.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-12.js
new file mode 100644
index 000000000..cfd850e36
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-12.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-12.js
+ * @description Array.prototype.filter - Boolean Object can be used as thisArg
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ var objBoolean = new Boolean();
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this === objBoolean;
+ }
+
+ var newArr = [11].filter(callbackfn, objBoolean);
+
+ return newArr[0] === 11 && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-13.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-13.js
new file mode 100644
index 000000000..88ef3dfe0
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-13.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-13.js
+ * @description Array.prototype.filter - Number Object can be used as thisArg
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ var objNumber = new Number();
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this === objNumber;
+ }
+
+ var newArr = [11].filter(callbackfn, objNumber);
+
+ return newArr[0] === 11 && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-14.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-14.js
new file mode 100644
index 000000000..5407803e7
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-14.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-14.js
+ * @description Array.prototype.filter - the Math object can be used as thisArg
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this === Math;
+ }
+
+ var newArr = [11].filter(callbackfn, Math);
+
+ return newArr[0] === 11 && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-15.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-15.js
new file mode 100644
index 000000000..d9bdb6602
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-15.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-15.js
+ * @description Array.prototype.filter - Date Object can be used as thisArg
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+
+ var objDate = new Date();
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this === objDate;
+ }
+
+ var newArr = [11].filter(callbackfn, objDate);
+
+ return newArr[0] === 11 && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-16.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-16.js
new file mode 100644
index 000000000..ea5f224a0
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-16.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-16.js
+ * @description Array.prototype.filter - RegExp Object can be used as thisArg
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+
+ var objRegExp = new RegExp();
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this === objRegExp;
+ }
+
+ var newArr = [11].filter(callbackfn, objRegExp);
+
+ return newArr[0] === 11 && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-17.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-17.js
new file mode 100644
index 000000000..3af4bd232
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-17.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-17.js
+ * @description Array.prototype.filter - the JSON object can be used as thisArg
+ */
+
+
+function testcase() {
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this === JSON;
+ }
+
+ var newArr = [11].filter(callbackfn, JSON);
+
+ return newArr[0] === 11 && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-18.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-18.js
new file mode 100644
index 000000000..bf3f67533
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-18.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-18.js
+ * @description Array.prototype.filter - Error Object can be used as thisArg
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ var objError = new RangeError();
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this === objError;
+ }
+
+ var newArr = [11].filter(callbackfn, objError);
+
+ return newArr[0] === 11 && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-19.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-19.js
new file mode 100644
index 000000000..110ab3062
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-19.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-19.js
+ * @description Array.prototype.filter - the Arguments object can be used as thisArg
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ var arg;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this === arg;
+ }
+
+ (function fun() {
+ arg = arguments;
+ }(1, 2, 3));
+
+ var newArr = [11].filter(callbackfn, arg);
+ return newArr[0] === 11 && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-2.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-2.js
new file mode 100644
index 000000000..0ba65bace
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-2.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-2.js
+ * @description Array.prototype.filter - thisArg is Object
+ */
+
+
+function testcase() {
+ var res = false;
+ var o = new Object();
+ o.res = true;
+ function callbackfn(val, idx, obj)
+ {
+ return this.res;
+ }
+
+ var srcArr = [1];
+ var resArr = srcArr.filter(callbackfn,o);
+ if( resArr.length === 1)
+ return true;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-21.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-21.js
new file mode 100644
index 000000000..4982bcc4b
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-21.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-21.js
+ * @description Array.prototype.filter - the global object can be used as thisArg
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this === fnGlobalObject();
+ }
+
+ var newArr = [11].filter(callbackfn, fnGlobalObject());
+
+ return newArr[0] === 11 && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-22.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-22.js
new file mode 100644
index 000000000..4fc8a8a7c
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-22.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-22.js
+ * @description Array.prototype.filter - boolean primitive can be used as thisArg
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this.valueOf() === false;
+ }
+
+ var newArr = [11].filter(callbackfn, false);
+
+ return newArr[0] === 11 && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-23.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-23.js
new file mode 100644
index 000000000..16c905b71
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-23.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-23.js
+ * @description Array.prototype.filter - number primitive can be used as thisArg
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this.valueOf() === 101;
+ }
+
+ var newArr = [11].filter(callbackfn, 101);
+
+ return newArr[0] === 11 && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-24.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-24.js
new file mode 100644
index 000000000..5e86d4187
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-24.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-24.js
+ * @description Array.prototype.filter - string primitive can be used as thisArg
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this.valueOf() === "abc";
+ }
+
+ var newArr = [11].filter(callbackfn, "abc");
+
+ return newArr[0] === 11 && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-27.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-27.js
new file mode 100644
index 000000000..08307c469
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-27.js
@@ -0,0 +1,33 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-27.js
+ * @description Array.prototype.filter - Array.isArray(arg) returns true when arg is the returned array
+ */
+
+
+function testcase() {
+
+ var newArr = [11].filter(function () { });
+
+ return Array.isArray(newArr);
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-28.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-28.js
new file mode 100644
index 000000000..9bf112e1e
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-28.js
@@ -0,0 +1,33 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-28.js
+ * @description Array.prototype.filter - the returned array is instanceof Array
+ */
+
+
+function testcase() {
+
+ var newArr = [11].filter(function () { });
+
+ return newArr instanceof Array;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-29.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-29.js
new file mode 100644
index 000000000..cb60f63c1
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-29.js
@@ -0,0 +1,33 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-29.js
+ * @description Array.prototype.filter - returns an array whose length is 0
+ */
+
+
+function testcase() {
+
+ var newArr = [11].filter(function () { });
+
+ return newArr.length === 0;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-3.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-3.js
new file mode 100644
index 000000000..3512240d9
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-3.js
+ * @description Array.prototype.filter - thisArg is Array
+ */
+
+
+function testcase() {
+ var res = false;
+ var a = new Array();
+ a.res = true;
+ function callbackfn(val, idx, obj)
+ {
+ return this.res;
+ }
+
+ var srcArr = [1];
+ var resArr = srcArr.filter(callbackfn,a);
+ if( resArr.length === 1)
+ return true;
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-30.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-30.js
new file mode 100644
index 000000000..2fd3149ee
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-30.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-30.js
+ * @description Array.prototype.filter - thisArg not passed
+ */
+
+
+function testcase() {
+ function innerObj() {
+ this._15_4_4_20_5_30 = true;
+ var _15_4_4_20_5_30 = false;
+
+ function callbackfn(val, idx, obj) {
+ return this._15_4_4_20_5_30;
+ }
+ var srcArr = [1];
+ var resArr = srcArr.filter(callbackfn);
+ this.retVal = resArr.length === 0;
+ }
+ return new innerObj().retVal;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-4.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-4.js
new file mode 100644
index 000000000..70fde9019
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-4.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-4.js
+ * @description Array.prototype.filter - thisArg is object from object template(prototype)
+ */
+
+
+function testcase() {
+ var res = false;
+ function callbackfn(val, idx, obj)
+ {
+ return this.res;
+ }
+
+ function foo(){}
+ foo.prototype.res = true;
+ var f = new foo();
+
+ var srcArr = [1];
+ var resArr = srcArr.filter(callbackfn,f);
+ if( resArr.length === 1)
+ return true;
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-5.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-5.js
new file mode 100644
index 000000000..ed8674fd5
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-5.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-5.js
+ * @description Array.prototype.filter - thisArg is object from object template
+ */
+
+
+function testcase() {
+ var res = false;
+ function callbackfn(val, idx, obj)
+ {
+ return this.res;
+ }
+
+ function foo(){}
+ var f = new foo();
+ f.res = true;
+
+ var srcArr = [1];
+ var resArr = srcArr.filter(callbackfn,f);
+ if( resArr.length === 1)
+ return true;
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-6.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-6.js
new file mode 100644
index 000000000..aa905fe0b
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-6.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-6.js
+ * @description Array.prototype.filter - thisArg is function
+ */
+
+
+function testcase() {
+ var res = false;
+ function callbackfn(val, idx, obj)
+ {
+ return this.res;
+ }
+
+ function foo(){}
+ foo.res = true;
+
+ var srcArr = [1];
+ var resArr = srcArr.filter(callbackfn,foo);
+ if( resArr.length === 1)
+ return true;
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-7.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-7.js
new file mode 100644
index 000000000..1be749413
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-7.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-7.js
+ * @description Array.prototype.filter - built-in functions can be used as thisArg
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this === eval;
+ }
+
+ var newArr = [11].filter(callbackfn, eval);
+
+ return newArr[0] === 11 && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-9.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-9.js
new file mode 100644
index 000000000..be81d3fe0
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-9.js
+ * @description Array.prototype.filter - Function Object can be used as thisArg
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ var objFunction = function () { };
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this === objFunction;
+ }
+
+ var newArr = [11].filter(callbackfn, objFunction);
+
+ return newArr[0] === 11 && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-1.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-1.js
new file mode 100644
index 000000000..96310a822
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-1.js
@@ -0,0 +1,35 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-1.js
+ * @description Array.prototype.filter returns an empty array if 'length' is 0 (empty array)
+ */
+
+
+function testcase() {
+ function cb(){}
+ var a = [].filter(cb);
+ if (Array.isArray(a) &&
+ a.length === 0) {
+ return true;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-2.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-2.js
new file mode 100644
index 000000000..138c9a08d
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-2.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-2.js
+ * @description Array.prototype.filter returns an empty array if 'length' is 0 (subclassed Array, length overridden to null (type conversion))
+ */
+
+
+function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = null;
+
+ function cb(){}
+ var a = f.filter(cb);
+
+ if (Array.isArray(a) &&
+ a.length === 0) {
+ return true;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-3.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-3.js
new file mode 100644
index 000000000..3015adc1d
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-3.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-3.js
+ * @description Array.prototype.filter returns an empty array if 'length' is 0 (subclassed Array, length overridden to false (type conversion))
+ */
+
+
+function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = false;
+
+ function cb(){}
+ var a = f.filter(cb);
+
+ if (Array.isArray(a) &&
+ a.length === 0) {
+ return true;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-4.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-4.js
new file mode 100644
index 000000000..fb8f3c2b6
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-4.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-4.js
+ * @description Array.prototype.filter returns an empty array if 'length' is 0 (subclassed Array, length overridden to 0 (type conversion))
+ */
+
+
+function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = 0;
+
+ function cb(){}
+ var a = f.filter(cb);
+
+ if (Array.isArray(a) &&
+ a.length === 0) {
+ return true;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-5.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-5.js
new file mode 100644
index 000000000..523a4813d
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-5.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-5.js
+ * @description Array.prototype.filter returns an empty array if 'length' is 0 (subclassed Array, length overridden to '0' (type conversion))
+ */
+
+
+function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = '0';
+
+ function cb(){}
+ var a = f.filter(cb);
+
+ if (Array.isArray(a) &&
+ a.length === 0) {
+ return true;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-6.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-6.js
new file mode 100644
index 000000000..d16257227
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-6.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-6.js
+ * @description Array.prototype.filter returns an empty array if 'length' is 0 (subclassed Array, length overridden with obj with valueOf)
+ */
+
+
+function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+
+ var o = { valueOf: function () { return 0;}};
+ f.length = o;
+
+ function cb(){}
+ var a = f.filter(cb);
+
+ if (Array.isArray(a) &&
+ a.length === 0) {
+ return true;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-7.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-7.js
new file mode 100644
index 000000000..66fcc5e87
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-7.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-7.js
+ * @description Array.prototype.filter returns an empty array if 'length' is 0 (subclassed Array, length overridden with obj w/o valueOf (toString))
+ */
+
+
+function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+
+ var o = { toString: function () { return '0';}};
+ f.length = o;
+
+ // objects inherit the default valueOf method of the Object object;
+ // that simply returns the itself. Since the default valueOf() method
+ // does not return a primitive value, ES next tries to convert the object
+ // to a number by calling its toString() method and converting the
+ // resulting string to a number.
+
+ function cb(){}
+ var a = f.filter(cb);
+
+ if (Array.isArray(a) &&
+ a.length === 0) {
+ return true;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-8.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-8.js
new file mode 100644
index 000000000..35cb90cda
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-8.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-8.js
+ * @description Array.prototype.filter returns an empty array if 'length' is 0 (subclassed Array, length overridden with []
+ */
+
+
+function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+
+ f.length = [];
+
+ // objects inherit the default valueOf method of the Object object;
+ // that simply returns the itself. Since the default valueOf() method
+ // does not return a primitive value, ES next tries to convert the object
+ // to a number by calling its toString() method and converting the
+ // resulting string to a number.
+ //
+ // The toString( ) method on Array converts the array elements to strings,
+ // then returns the result of concatenating these strings, with commas in
+ // between. An array with no elements converts to the empty string, which
+ // converts to the number 0. If an array has a single element that is a
+ // number n, the array converts to a string representation of n, which is
+ // then converted back to n itself. If an array contains more than one element,
+ // or if its one element is not a number, the array converts to NaN.
+
+ function cb(){}
+ var a = f.filter(cb);
+
+ if (Array.isArray(a) &&
+ a.length === 0) {
+ return true;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-1.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-1.js
new file mode 100644
index 000000000..79cc5d08e
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-1.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-1.js
+ * @description Array.prototype.filter doesn't consider new elements added to array after it is called
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ srcArr[2] = 3;
+ srcArr[5] = 6;
+ return true;
+ }
+
+ var srcArr = [1, 2, , 4, 5];
+ var resArr = srcArr.filter(callbackfn);
+ return resArr.length === 5;
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-2.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-2.js
new file mode 100644
index 000000000..71efc8fdf
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-2.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-2.js
+ * @description Array.prototype.filter considers new value of elements in array after it is called
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj)
+ {
+ srcArr[2] = -1;
+ srcArr[4] = -1;
+ if(val > 0)
+ return true;
+ else
+ return false;
+ }
+
+ var srcArr = [1,2,3,4,5];
+ var resArr = srcArr.filter(callbackfn);
+ if(resArr.length === 3 && resArr[0] === 1 && resArr[2] === 4)
+ return true;
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-3.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-3.js
new file mode 100644
index 000000000..265b04a5b
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-3.js
+ * @description Array.prototype.filter doesn't visit deleted elements in array after the call
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj)
+ {
+ delete srcArr[2];
+ delete srcArr[4];
+ if(val > 0)
+ return true;
+ else
+ return false;
+ }
+
+ var srcArr = [1,2,3,4,5];
+ var resArr = srcArr.filter(callbackfn);
+ if(resArr.length === 3 && resArr[0] === 1 && resArr[2] === 4 ) // two elements deleted
+ return true;
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-4.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-4.js
new file mode 100644
index 000000000..48c10a3c4
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-4.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-4.js
+ * @description Array.prototype.filter doesn't visit deleted elements when Array.length is decreased
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj)
+ {
+ srcArr.length = 2;
+ return true;
+ }
+
+ var srcArr = [1,2,3,4,6];
+ var resArr = srcArr.filter(callbackfn);
+ if(resArr.length === 2 )
+ return true;
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-5.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-5.js
new file mode 100644
index 000000000..10bf9b897
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-5.js
@@ -0,0 +1,43 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-5.js
+ * @description Array.prototype.filter doesn't consider newly added elements in sparse array
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj)
+ {
+ srcArr[1000] = 3;
+ return true;
+ }
+
+ var srcArr = new Array(10);
+ srcArr[1] = 1;
+ srcArr[2] = 2;
+ var resArr = srcArr.filter(callbackfn);
+ if( resArr.length === 2)
+ return true;
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-6.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-6.js
new file mode 100644
index 000000000..b0b93ad47
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-6.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-6.js
+ * @description Array.prototype.filter visits deleted element in array after the call when same index is also present in prototype
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj)
+ {
+ delete srcArr[2];
+ delete srcArr[4];
+ if(val > 0)
+ return true;
+ else
+ return false;
+ }
+
+ Array.prototype[4] = 5;
+ var srcArr = [1,2,3,4,5];
+ var resArr = srcArr.filter(callbackfn);
+ delete Array.prototype[4];
+ if(resArr.length === 4 && resArr[0] === 1 && resArr[3] == 5) // only one element deleted
+ return true;
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-7.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-7.js
new file mode 100644
index 000000000..598eb5e39
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-7.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-7.js
+ * @description Array.prototype.filter stops calling callbackfn once the array is deleted during the call
+ */
+
+
+function testcase() {
+ var o = new Object();
+ o.srcArr = [1, 2, 3, 4, 5];
+
+ function callbackfn(val, idx, obj) {
+ delete o.srcArr;
+ if (val > 0)
+ return true;
+ else
+ return false;
+ }
+
+ var resArr = o.srcArr.filter(callbackfn);
+ return resArr.length === 5 && typeof o.srcArr === "undefined";
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-8.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-8.js
new file mode 100644
index 000000000..a569c1d98
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-8.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-8.js
+ * @description Array.prototype.filter - no observable effects occur if len is 0
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return val > 10;
+ }
+
+ var obj = { 0: 11, 1: 12, length: 0 };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return accessed === false && obj.length === 0 && newArr.length === 0;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-9.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-9.js
new file mode 100644
index 000000000..2faf81951
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-9.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-9.js
+ * @description Array.prototype.filter - modifications to length don't change number of iterations
+ */
+
+
+function testcase() {
+
+ var called = 0;
+
+ function callbackfn(val, idx, obj) {
+ called++;
+ return true;
+ }
+
+ var obj = { 1: 12, 2: 9, length: 2 };
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ obj.length = 3;
+ return 11;
+ },
+ configurable: true
+ });
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 2 && 2 === called;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-1.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-1.js
new file mode 100644
index 000000000..53268b252
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-1.js
+ * @description Array.prototype.filter - callbackfn not called for indexes never been assigned values
+ */
+
+
+function testcase() {
+
+ var callCnt = 0;
+ function callbackfn(val, idx, obj)
+ {
+ callCnt++;
+ return false;
+ }
+
+ var srcArr = new Array(10);
+ srcArr[1] = undefined; //explicitly assigning a value
+ var resArr = srcArr.filter(callbackfn);
+ if( resArr.length === 0 && callCnt === 1)
+ return true;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-10.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-10.js
new file mode 100644
index 000000000..33d892fb0
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-10.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-10.js
+ * @description Array.prototype.filter - deleting property of prototype causes prototype index property not to be visited on an Array-like Object
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+ var obj = { 2: 2, length: 20 };
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ delete Object.prototype[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Object.prototype[1] = 1;
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 2 && newArr[1] !== 1;
+ } finally {
+ delete Object.prototype[1];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-11.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-11.js
new file mode 100644
index 000000000..5cfe31bb9
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-11.js
+ * @description Array.prototype.filter - deleting property of prototype causes prototype index property not to be visited on an Array
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+ var arr = [0, , 2];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ delete Array.prototype[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype[1] = 1;
+ var newArr = arr.filter(callbackfn);
+ return newArr.length === 2 && newArr[1] !== 1;
+ } finally {
+ delete Array.prototype[1];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-12.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-12.js
new file mode 100644
index 000000000..7100167a6
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-12.js
+ * @description Array.prototype.filter - deleting own property with prototype property causes prototype index property to be visited on an Array-like object
+ */
+
+
+function testcase() {
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+ var obj = { 0: 0, 1: 111, 2: 2, length: 10 };
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ delete obj[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Object.prototype[1] = 1;
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 3 && newArr[1] === 1;
+ } finally {
+ delete Object.prototype[1];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-13.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-13.js
new file mode 100644
index 000000000..298c8e05c
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-13.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-13.js
+ * @description Array.prototype.filter - deleting own property with prototype property causes prototype index property to be visited on an Array
+ */
+
+
+function testcase() {
+ function callbackfn(val, idx, obj) {
+ return val < 3 ? true : false;
+ }
+ var arr = [0, 111, 2];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ delete arr[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype[1] = 1;
+ var newArr = arr.filter(callbackfn);
+
+ return newArr.length === 3 && newArr[1] === 1;
+ } finally {
+ delete Array.prototype[1];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-14.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-14.js
new file mode 100644
index 000000000..e86b04650
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-14.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-14.js
+ * @description Array.prototype.filter - decreasing length of array causes index property not to be visited
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+ var arr = [0, 1, 2, "last"];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ arr.length = 3;
+ return 0;
+ },
+ configurable: true
+ });
+
+ var newArr = arr.filter(callbackfn);
+
+
+ return newArr.length === 3 && newArr[2] === 2;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-15.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-15.js
new file mode 100644
index 000000000..c78788c57
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-15.js
+ * @description Array.prototype.filter - decreasing length of array with prototype property causes prototype index property to be visited
+ */
+
+
+function testcase() {
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+ var arr = [0, 1, 2];
+
+ try {
+ Object.defineProperty(Array.prototype, "2", {
+ get: function () {
+ return "prototype";
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ arr.length = 2;
+ return 1;
+ },
+ configurable: true
+ });
+
+ var newArr = arr.filter(callbackfn);
+
+ return newArr.length === 3 && newArr[2] === "prototype";
+ } finally {
+ delete Array.prototype[2];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-16.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-16.js
new file mode 100644
index 000000000..490b4ce2f
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-16.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-16.js
+ * @description Array.prototype.filter - decreasing length of array does not delete non-configurable properties
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var arr = [0, 1, 2];
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ return "unconfigurable";
+ },
+ configurable: false
+ });
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ arr.length = 2;
+ return 1;
+ },
+ configurable: true
+ });
+
+ var newArr = arr.filter(callbackfn);
+
+ return newArr.length === 3 && newArr[2] === "unconfigurable";
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-2.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-2.js
new file mode 100644
index 000000000..566553cd0
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-2.js
+ * @description Array.prototype.filter - added properties in step 2 are visible here
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = {};
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ obj[2] = "length";
+ return 3;
+ },
+ configurable: true
+ });
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === "length";
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-3.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-3.js
new file mode 100644
index 000000000..0f988e5c5
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-3.js
+ * @description Array.prototype.filter - deleted properties in step 2 are visible here
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+ var obj = { 2: 6.99, 8: 19 };
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ delete obj[2];
+ return 10;
+ },
+ configurable: true
+ });
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] !== 6.99;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-4.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-4.js
new file mode 100644
index 000000000..98411bc9e
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-4.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-4.js
+ * @description Array.prototype.filter - properties added into own object after current position are visited on an Array-like object
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = { length: 2 };
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 2 && newArr[1] === 6.99;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-5.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-5.js
new file mode 100644
index 000000000..fd4d755fc
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-5.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-5.js
+ * @description Array.prototype.filter - properties added into own object after current position are visited on an Array
+ */
+
+
+function testcase() {
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var arr = [0, , 2];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ var newArr = arr.filter(callbackfn);
+
+ return newArr.length === 3 && newArr[1] === 6.99;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-6.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-6.js
new file mode 100644
index 000000000..970ec9267
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-6.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-6.js
+ * @description Array.prototype.filter - properties can be added to prototype after current position are visited on an Array-like object
+ */
+
+
+function testcase() {
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+ var obj = { length: 2 };
+
+ try {
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ Object.defineProperty(Object.prototype, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 2 && Array[1] === 6.99;
+ } finally {
+ delete Object.prototype[1];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-7.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-7.js
new file mode 100644
index 000000000..eb48d90a0
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-7.js
+ * @description Array.prototype.filter - properties can be added to prototype after current position are visited on an Array
+ */
+
+
+function testcase() {
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+ var arr = [0, , 2];
+
+ try {
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ Object.defineProperty(Array.prototype, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ var newArr = arr.filter(callbackfn);
+
+ return newArr.length === 3 && newArr[1] === 6.99;
+ } finally {
+ delete Array.prototype[1];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-8.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-8.js
new file mode 100644
index 000000000..90783de40
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-8.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-8.js
+ * @description Array.prototype.filter - deleting own property causes index property not to be visited on an Array-like object
+ */
+
+
+function testcase() {
+ var accessed = false;
+ var obj = { length: 2 };
+
+ function callbackfn(val, idx, o) {
+ accessed = true;
+ return true;
+ }
+
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ delete obj[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 0;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-9.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-9.js
new file mode 100644
index 000000000..4dd42896c
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-9.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-9.js
+ * @description Array.prototype.filter - deleting own property causes index property not to be visited on an Array
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+ var arr = [1, 2];
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return "6.99";
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ delete arr[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ var newArr = arr.filter(callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 0;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-1.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-1.js
new file mode 100644
index 000000000..65722d652
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-1.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-1.js
+ * @description Array.prototype.filter - element to be retrieved is own data property on an Array-like object
+ */
+
+
+function testcase() {
+
+ var kValue = {};
+ function callbackfn(val, idx, obj) {
+ return (idx === 5) && (val === kValue);
+ }
+
+ var obj = { 5: kValue, length: 100 };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === kValue;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-10.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-10.js
new file mode 100644
index 000000000..747eec53c
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-10.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-10.js
+ * @description Array.prototype.filter - element to be retrieved is own accessor property on an Array
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return idx === 2 && val === 12;
+ }
+
+ var arr = [];
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ return 12;
+ },
+ configurable: true
+ });
+ var newArr = arr.filter(callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 12;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-11.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-11.js
new file mode 100644
index 000000000..a5903d51f
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-11.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-11.js
+ * @description Array.prototype.filter - element to be retrieved is own accessor property that overrides an inherited data property on an Array-like object
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return idx === 0 && val === 11;
+ }
+
+ var proto = { 0: 5, 1: 6 };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 10;
+
+ Object.defineProperty(child, "0", {
+ get: function () {
+ return 11;
+ },
+ configurable: true
+ });
+ var newArr = Array.prototype.filter.call(child, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-12.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-12.js
new file mode 100644
index 000000000..d62b84706
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-12.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-12.js
+ * @description Array.prototype.filter - element to be retrieved is own accessor property that overrides an inherited data property on an Array
+ */
+
+
+function testcase() {
+ function callbackfn(val, idx, obj) {
+ return val === 111 && idx === 0;
+ }
+
+ var arr = [];
+ try {
+ Array.prototype[0] = 10;
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ return 111;
+ },
+ configurable: true
+ });
+ var newArr = arr.filter(callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 111;
+ } finally {
+ delete Array.prototype[0];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-13.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-13.js
new file mode 100644
index 000000000..01c1f55b9
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-13.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-13.js
+ * @description Array.prototype.filter - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array-like object
+ */
+
+
+function testcase() {
+ function callbackfn(val, idx, obj) {
+ return idx === 1 && val === 12;
+ }
+
+ var proto = {};
+
+ Object.defineProperty(proto, "1", {
+ get: function () {
+ return 6;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 10;
+
+ Object.defineProperty(child, "1", {
+ get: function () {
+ return 12;
+ },
+ configurable: true
+ });
+ var newArr = Array.prototype.filter.call(child, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 12;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-14.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-14.js
new file mode 100644
index 000000000..f94aeb4a3
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-14.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-14.js
+ * @description Array.prototype.filter - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return idx === 0 && val === 11;
+ }
+
+ var arr = [];
+ try {
+ Object.defineProperty(Array.prototype, "0", {
+ get: function () {
+ return 5;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ return 11;
+ },
+ configurable: true
+ });
+ var newArr = arr.filter(callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ } finally {
+ delete Array.prototype[0];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-15.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-15.js
new file mode 100644
index 000000000..d451a1d1c
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-15.js
+ * @description Array.prototype.filter - element to be retrieved is inherited accessor property on an Array-like object
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return val === 11 && idx === 1;
+ }
+
+ var proto = {};
+
+ Object.defineProperty(proto, "1", {
+ get: function () {
+ return 11;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 20;
+ var newArr = Array.prototype.filter.call(child, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-16.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-16.js
new file mode 100644
index 000000000..f5b0cb150
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-16.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-16.js
+ * @description Array.prototype.filter - element to be retrieved is inherited accessor property on an Array
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return idx === 0 && val === 11;
+ }
+
+ try {
+ Object.defineProperty(Array.prototype, "0", {
+ get: function () {
+ return 11;
+ },
+ configurable: true
+ });
+ var newArr = [, , , ].filter(callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ } finally {
+ delete Array.prototype[0];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-17.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-17.js
new file mode 100644
index 000000000..df327e31a
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-17.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-17.js
+ * @description Array.prototype.filter - element to be retrieved is own accessor property without a get function on an Array-like object
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return undefined === val && idx === 1;
+ }
+
+ var obj = { length: 2 };
+ Object.defineProperty(obj, "1", {
+ set: function () { },
+ configurable: true
+ });
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === undefined;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-18.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-18.js
new file mode 100644
index 000000000..f0eaa1cf6
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-18.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-18.js
+ * @description Array.prototype.filter - element to be retrieved is own accessor property without a get function on an Array
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return undefined === val && idx === 0;
+ }
+
+ var arr = [];
+
+ Object.defineProperty(arr, "0", {
+ set: function () { },
+ configurable: true
+ });
+
+ var newArr = arr.filter(callbackfn);
+
+ return newArr.length === 1 && newArr[0] === undefined;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-19.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-19.js
new file mode 100644
index 000000000..68a6fa7d1
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-19.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-19.js
+ * @description Array.prototype.filter - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array-like object
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return undefined === val && idx === 1;
+ }
+
+ var obj = { length: 2 };
+ Object.defineProperty(obj, "1", {
+ set: function () { },
+ configurable: true
+ });
+ try {
+ Object.prototype[1] = 10;
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === undefined;
+ } finally {
+ delete Object.prototype[1];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-2.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-2.js
new file mode 100644
index 000000000..812616249
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-2.js
+ * @description Array.prototype.filter - element to be retrieved is own data property on an Array
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return val === 11;
+ }
+ }
+
+ var newArr = [11].filter(callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-20.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-20.js
new file mode 100644
index 000000000..77c22fa7b
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-20.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-20.js
+ * @description Array.prototype.filter - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return undefined === val && idx === 0;
+ }
+
+ var arr = [];
+
+ Object.defineProperty(arr, "0", {
+ set: function () { },
+ configurable: true
+ });
+
+ try {
+ Array.prototype[0] = 100;
+ var newArr = arr.filter(callbackfn);
+
+ return newArr.length === 1 && newArr[0] === undefined;
+ } finally {
+ delete Array.prototype[0];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-21.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-21.js
new file mode 100644
index 000000000..ac922b8ab
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-21.js
+ * @description Array.prototype.filter - element to be retrieved is inherited accessor property without a get function on an Array-like object
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return val === undefined && idx === 1;
+ }
+
+ var proto = {};
+ Object.defineProperty(proto, "1", {
+ set: function () { },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 2;
+ var newArr = Array.prototype.filter.call(child, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === undefined;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-22.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-22.js
new file mode 100644
index 000000000..0e929c10c
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-22.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-22.js
+ * @description Array.prototype.filter - element to be retrieved is inherited accessor property without a get function on an Array
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return undefined === val && idx === 0;
+ }
+
+ try {
+ Object.defineProperty(Array.prototype, "0", {
+ set: function () { },
+ configurable: true
+ });
+ var newArr = [, ].filter(callbackfn);
+
+ return newArr.length === 1 && newArr[0] === undefined;
+ } finally {
+ delete Array.prototype[0];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-23.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-23.js
new file mode 100644
index 000000000..600ed0624
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-23.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-23.js
+ * @description Array.prototype.filter - This object is the global object which contains index property
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return idx === 0 && val === 11;
+ }
+
+ try {
+ var oldLen = fnGlobalObject().length;
+ fnGlobalObject()[0] = 11;
+ fnGlobalObject().length = 1;
+ var newArr = Array.prototype.filter.call(fnGlobalObject(), callbackfn);
+ return newArr.length === 1 && newArr[0] === 11;
+ } finally {
+ delete fnGlobalObject()[0];
+ fnGlobalObject().length = oldLen;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-25.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-25.js
new file mode 100644
index 000000000..98a906940
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-25.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-25.js
+ * @description Array.prototype.filter - This object is the Arguments object which implements its own property get method (number of arguments is less than number of parameters)
+ */
+
+
+function testcase() {
+ function callbackfn(val, idx, obj) {
+ return val === 11 && idx === 0;
+ }
+
+ var func = function (a, b) {
+ return Array.prototype.filter.call(arguments, callbackfn);
+ };
+
+ var newArr = func(11);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-26.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-26.js
new file mode 100644
index 000000000..a4e80626d
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-26.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-26.js
+ * @description Array.prototype.filter - This object is the Arguments object which implements its own property get method (number of arguments equals number of parameters)
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return val === 11;
+ } else if (idx === 1) {
+ return val === 9;
+ } else {
+ return false;
+ }
+ }
+
+ var func = function (a, b) {
+ return Array.prototype.filter.call(arguments, callbackfn);
+ };
+ var newArr = func(11, 9);
+
+ return newArr.length === 2 && newArr[0] === 11 &&
+ newArr[1] === 9;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-27.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-27.js
new file mode 100644
index 000000000..64e2393f8
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-27.js
+ * @description Array.prototype.filter - This object is the Arguments object which implements its own property get method (number of arguments is greater than number of parameters)
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return val === 11;
+ } else if (idx === 1) {
+ return val === 12;
+ } else if (idx === 2) {
+ return val === 9;
+ } else {
+ return false;
+ }
+ }
+
+ var func = function (a, b) {
+ return Array.prototype.filter.call(arguments, callbackfn);
+ };
+ var newArr = func(11, 12, 9);
+
+ return newArr.length === 3 && newArr[0] === 11 &&
+ newArr[1] === 12 && newArr[2] === 9;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-28.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-28.js
new file mode 100644
index 000000000..c7d011d90
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-28.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-28.js
+ * @description Array.prototype.filter - element changed by getter on previous iterations is observed on an Array
+ */
+
+
+function testcase() {
+
+ var preIterVisible = false;
+ var arr = [];
+
+ function callbackfn(val, idx, obj) {
+ return idx === 1 && val === 9;
+ }
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ preIterVisible = true;
+ return 11;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ if (preIterVisible) {
+ return 9;
+ } else {
+ return 11;
+ }
+ },
+ configurable: true
+ });
+ var newArr = arr.filter(callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 9;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-29.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-29.js
new file mode 100644
index 000000000..7365c0666
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-29.js
+ * @description Array.prototype.filter - element changed by getter on previous iterations is observed on an Array-like object
+ */
+
+
+function testcase() {
+ function callbackfn(val, idx, obj) {
+ return val === 9 && idx === 1;
+ }
+
+ var preIterVisible = false;
+ var obj = { length: 2 };
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ preIterVisible = true;
+ return 11;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ if (preIterVisible) {
+ return 9;
+ } else {
+ return 13;
+ }
+ },
+ configurable: true
+ });
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 9;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-3.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-3.js
new file mode 100644
index 000000000..5ca6a1f0a
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-3.js
+ * @description Array.prototype.filter - element to be retrieved is own data property that overrides an inherited data property on an Array-like object
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return (idx === 5) && (val === "abc");
+ }
+
+ var proto = { 0: 11, 5: 100 };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[5] = "abc";
+ child.length = 10;
+
+ var newArr = Array.prototype.filter.call(child, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === "abc";
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-30.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-30.js
new file mode 100644
index 000000000..5afda3027
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-30.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-30.js
+ * @description Array.prototype.filter - unnhandled exceptions happened in getter terminate iteration on an Array-like object
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ if (idx > 1) {
+ accessed = true;
+ }
+ return true;
+ }
+
+ var obj = { 0: 11, 5: 10, 10: 8, length: 20 };
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ throw new RangeError("unhandle exception happened in getter");
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.filter.call(obj, callbackfn);
+ return false;
+ } catch (ex) {
+ return (ex instanceof RangeError) && !accessed;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-31.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-31.js
new file mode 100644
index 000000000..4ba61ef8a
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-31.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-31.js
+ * @description Array.prototype.filter - unnhandled exceptions happened in getter terminate iteration on an Array
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ if (idx > 1) {
+ accessed = true;
+ }
+ return true;
+ }
+
+ var arr = [];
+ arr[5] = 10;
+ arr[10] = 100;
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ throw new RangeError("unhandle exception happened in getter");
+ },
+ configurable: true
+ });
+
+ try {
+ arr.filter(callbackfn);
+ return false;
+ } catch (ex) {
+ return (ex instanceof RangeError) && !accessed;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-4.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-4.js
new file mode 100644
index 000000000..4ae22dc44
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-4.js
+ * @description Array.prototype.filter - element to be retrieved is own data property that overrides an inherited data property on an Array
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return (idx === 0) && (val === 12);
+ }
+
+ try {
+ Array.prototype[0] = 11;
+ var newArr = [12].filter(callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 12;
+ } finally {
+ delete Array.prototype[0];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-5.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-5.js
new file mode 100644
index 000000000..98f7735d5
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-5.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-5.js
+ * @description Array.prototype.filter - element to be retrieved is own data property that overrides an inherited accessor property on an Array-like object
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return idx === 0 && val === 11;
+ }
+
+ var proto = {};
+
+ Object.defineProperty(proto, "0", {
+ get: function () {
+ return 5;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 2;
+ Object.defineProperty(child, "0", {
+ value: 11,
+ configurable: true
+ });
+ child[1] = 12;
+
+ var newArr = Array.prototype.filter.call(child, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-6.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-6.js
new file mode 100644
index 000000000..bd15b2bb2
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-6.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-6.js
+ * @description Array.prototype.filter - element to be retrieved is own data property that overrides an inherited accessor property on an Array
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return val === 11;
+ }
+
+ try {
+ Object.defineProperty(Array.prototype, "0", {
+ get: function () {
+ return 9;
+ },
+ configurable: true
+ });
+ var newArr = [11].filter(callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ } finally {
+ delete Array.prototype[0];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-7.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-7.js
new file mode 100644
index 000000000..69342d35f
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-7.js
+ * @description Array.prototype.filter - element to be retrieved is inherited data property on an Array-like object
+ */
+
+
+function testcase() {
+
+ var kValue = 'abc';
+
+ function callbackfn(val, idx, obj) {
+ return (idx === 5) && (val === kValue);
+ }
+
+ var proto = { 5: kValue };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 10;
+
+ var newArr = Array.prototype.filter.call(child, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === kValue;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-8.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-8.js
new file mode 100644
index 000000000..98ed1beb4
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-8.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-8.js
+ * @description Array.prototype.filter - element to be retrieved is inherited data property on an Array
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return (idx === 1) && (val === 13);
+ }
+
+ try {
+ Array.prototype[1] = 13;
+ var newArr = [, , , ].filter(callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 13;
+ } finally {
+ delete Array.prototype[1];
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-9.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-9.js
new file mode 100644
index 000000000..fb5a9afaf
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-9.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-9.js
+ * @description Array.prototype.filter - element to be retrieved is own accessor property on an Array-like object
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return (idx === 0) && (val === 11);
+ }
+
+ var obj = { 10: 10, length: 20 };
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ return 11;
+ },
+ configurable: true
+ });
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-1.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-1.js
new file mode 100644
index 000000000..d5b9c8232
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-1.js
+ * @description Array.prototype.filter - callbackfn called with correct parameters
+ */
+
+
+function testcase() {
+
+ var bPar = true;
+ var bCalled = false;
+ function callbackfn(val, idx, obj)
+ {
+ bCalled = true;
+ if(obj[idx] !== val)
+ bPar = false;
+ }
+
+ var srcArr = [0,1,true,null,new Object(),"five"];
+ srcArr[999999] = -6.6;
+ var resArr = srcArr.filter(callbackfn);
+
+ if(bCalled === true && bPar === true)
+ return true;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-10.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-10.js
new file mode 100644
index 000000000..47aa7c36e
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-10.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-10.js
+ * @description Array.prototype.filter - callbackfn is called with 1 formal parameter
+ */
+
+
+function testcase() {
+
+ function callbackfn(val) {
+ return val > 10;
+ }
+ var newArr = [12].filter(callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 12;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-11.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-11.js
new file mode 100644
index 000000000..f48012af9
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-11.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-11.js
+ * @description Array.prototype.filter - callbackfn is called with 2 formal parameter
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx) {
+ return val > 10 && arguments[2][idx] === val;
+ }
+ var newArr = [11].filter(callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-12.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-12.js
new file mode 100644
index 000000000..48342e93e
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-12.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-12.js
+ * @description Array.prototype.filter - callbackfn is called with 3 formal parameter
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return val > 10 && obj[idx] === val;
+ }
+ var newArr = [11].filter(callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-13.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-13.js
new file mode 100644
index 000000000..8876692d9
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-13.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-13.js
+ * @description Array.prototype.filter - callbackfn that uses arguments object to get parameter value
+ */
+
+
+function testcase() {
+
+ function callbackfn() {
+ return arguments[2][arguments[1]] === arguments[0];
+ }
+ var newArr = [11].filter(callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-16.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-16.js
new file mode 100644
index 000000000..d7f079c17
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-16.js
@@ -0,0 +1,38 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-16.js
+ * @description Array.prototype.filter - 'this' of 'callbackfn' is a Boolean object when T is not an object (T is a boolean)
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return this.valueOf() === false;
+ }
+
+ var obj = { 0: 11, length: 2 };
+ var newArr = Array.prototype.filter.call(obj, callbackfn, false);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-17.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-17.js
new file mode 100644
index 000000000..77b4f0fe6
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-17.js
@@ -0,0 +1,38 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-17.js
+ * @description Array.prototype.filter -'this' of 'callbackfn' is a Number object when T is not an object (T is a number)
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, o) {
+ return 5 === this.valueOf();
+ }
+
+ var obj = { 0: 11, length: 2 };
+ var newArr = Array.prototype.filter.call(obj, callbackfn, 5);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-18.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-18.js
new file mode 100644
index 000000000..123aad36f
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-18.js
@@ -0,0 +1,38 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-18.js
+ * @description Array.prototype.filter - 'this' of 'callbackfn' is an String object when T is not an object (T is a string)
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return 'hello' === this.valueOf();
+ }
+
+ var obj = { 0: 11, length: 2 };
+ var newArr = Array.prototype.filter.call(obj, callbackfn, "hello");
+
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-19.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-19.js
new file mode 100644
index 000000000..71de7f783
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-19.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-19.js
+ * @description Array.prototype.filter - non-indexed properties are not called
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return val === 8;
+ }
+
+ var obj = { 0: 11, non_index_property: 8, 2: 5, length: 20 };
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 0 && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-2.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-2.js
new file mode 100644
index 000000000..8e5ddc606
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-2.js
@@ -0,0 +1,43 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-2.js
+ * @description Array.prototype.filter - callbackfn takes 3 arguments
+ */
+
+
+function testcase() {
+
+ var parCnt = 3;
+ var bCalled = false
+ function callbackfn(val, idx, obj)
+ {
+ bCalled = true;
+ if(arguments.length !== 3)
+ parCnt = arguments.length; //verify if callbackfn was called with 3 parameters
+ }
+
+ var srcArr = [0,1,2,3,4,5,6,7,8,9];
+ var resArr = srcArr.filter(callbackfn);
+ if(bCalled === true && parCnt === 3)
+ return true;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-20.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-20.js
new file mode 100644
index 000000000..14d4a26c7
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-20.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-20.js
+ * @description Array.prototype.filter - callbackfn called with correct parameters (thisArg is correct)
+ */
+
+
+function testcase() {
+
+ var thisArg = { threshold: 10 };
+
+ function callbackfn(val, idx, obj) {
+ return this === thisArg;
+ }
+
+ var obj = { 0: 11, length: 1 };
+ var newArr = Array.prototype.filter.call(obj, callbackfn, thisArg);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-21.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-21.js
new file mode 100644
index 000000000..7dc65a396
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-21.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-21.js
+ * @description Array.prototype.filter - callbackfn called with correct parameters (kValue is correct)
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return val === 11;
+ }
+
+ if (idx === 1) {
+ return val === 12;
+ }
+
+ return false;
+ }
+
+ var obj = { 0: 11, 1: 12, length: 2 };
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 2 && newArr[0] === 11 && newArr[1] === 12;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-22.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-22.js
new file mode 100644
index 000000000..1fe383a62
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-22.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-22.js
+ * @description Array.prototype.filter - callbackfn called with correct parameters (the index k is correct)
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (val === 11) {
+ return idx === 0;
+ }
+
+ if (val === 12) {
+ return idx === 1;
+ }
+
+ return false;
+ }
+
+ var obj = { 0: 11, 1: 12, length: 2 };
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 2 && newArr[0] === 11 && newArr[1] === 12;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-23.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-23.js
new file mode 100644
index 000000000..5c7db49f7
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-23.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-23.js
+ * @description Array.prototype.filter - callbackfn called with correct parameters (this object O is correct)
+ */
+
+
+function testcase() {
+
+ var obj = { 0: 11, length: 2 };
+
+ function callbackfn(val, idx, o) {
+ return obj === o;
+ }
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-4.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-4.js
new file mode 100644
index 000000000..bbb9bc746
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-4.js
+ * @description Array.prototype.filter - k values are passed in ascending numeric order
+ */
+
+
+function testcase() {
+
+ var arr = [0, 1, 2, 3, 4, 5];
+ var lastIdx = 0;
+ var called = 0;
+ function callbackfn(val, idx, o) {
+ called++;
+ if (lastIdx !== idx) {
+ return false;
+ } else {
+ lastIdx++;
+ return true;
+ }
+ }
+ var newArr = arr.filter(callbackfn);
+
+ return newArr.length === called;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-5.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-5.js
new file mode 100644
index 000000000..e2aad9641
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-5.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-5.js
+ * @description Array.prototype.filter - k values are accessed during each iteration and not prior to starting the loop on an Array
+ */
+
+
+function testcase() {
+
+ var kIndex = [];
+ var called = 0;
+
+ //By below way, we could verify that k would be setted as 0, 1, ..., length - 1 in order, and each value will be setted one time.
+ function callbackfn(val, idx, obj) {
+ called++;
+ //Each position should be visited one time, which means k is accessed one time during iterations.
+ if (kIndex[idx] === undefined) {
+ //when current position is visited, its previous index should has been visited.
+ if (idx !== 0 && kIndex[idx - 1] === undefined) {
+ return true;
+ }
+ kIndex[idx] = 1;
+ return false;
+ } else {
+ return true;
+ }
+ }
+ var newArr = [11, 12, 13, 14].filter(callbackfn, undefined);
+
+ return newArr.length === 0 && called === 4;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-6.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-6.js
new file mode 100644
index 000000000..b1354bb44
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-6.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-6.js
+ * @description Array.prototype.filter - arguments to callbackfn are self consistent
+ */
+
+
+function testcase() {
+
+ var obj = { 0: 11, length: 1 };
+ var thisArg = {};
+
+ function callbackfn() {
+ return this === thisArg &&
+ arguments[0] === 11 &&
+ arguments[1] === 0 &&
+ arguments[2] === obj;
+ }
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn, thisArg);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-7.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-7.js
new file mode 100644
index 000000000..00a604666
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-7.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-7.js
+ * @description Array.prototype.filter - unhandled exceptions happened in callbackfn terminate iteration
+ */
+
+
+function testcase() {
+
+ var called = 0;
+
+ function callbackfn(val, idx, obj) {
+ called++;
+ if (called === 1) {
+ throw new Error("Exception occurred in callbackfn");
+ }
+ return true;
+ }
+
+ var obj = { 0: 11, 4: 10, 10: 8, length: 20 };
+
+ try {
+ Array.prototype.filter.call(obj, callbackfn);
+ return false;
+ } catch (ex) {
+ return 1 === called && ex instanceof Error;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-8.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-8.js
new file mode 100644
index 000000000..ebf590fe9
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-8.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-8.js
+ * @description Array.prototype.filter - element changed by callbackfn on previous iterations is observed
+ */
+
+
+function testcase() {
+
+ var obj = { 0: 11, 1: 12, length: 2 };
+
+ function callbackfn(val, idx, o) {
+ if (idx === 0) {
+ obj[idx + 1] = 8;
+ }
+ return val > 10;
+ }
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-9.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-9.js
new file mode 100644
index 000000000..2dc2e4bb6
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-9.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-9.js
+ * @description Array.prototype.filter - callbackfn is called with 0 formal parameter
+ */
+
+
+function testcase() {
+
+ function callbackfn() {
+ return true;
+ }
+ var newArr = [11].filter(callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-1.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-1.js
new file mode 100644
index 000000000..ffb10b118
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-1.js
@@ -0,0 +1,38 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-1.js
+ * @description Array.prototype.filter - value of returned array element equals to 'kValue'
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = { 0: 11, 1: 9, length: 2 };
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr[0] === obj[0] && newArr[1] === obj[1];
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-2.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-2.js
new file mode 100644
index 000000000..121e9d321
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-2.js
+ * @description Array.prototype.filter - value of returned array element can be overwritten
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = { 0: 11, 1: 9, length: 2 };
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ try {
+ var tempVal = newArr[1];
+ newArr[1] += 1;
+ return newArr[1] !== tempVal;
+ } catch (ex) {
+ return false;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-3.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-3.js
new file mode 100644
index 000000000..3647216b0
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-3.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-3.js
+ * @description Array.prototype.filter - value of returned array element can be enumerated
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = { 0: 11, length: 2 };
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ var prop;
+ var enumerable = false;
+ for (prop in newArr) {
+ if (newArr.hasOwnProperty(prop)) {
+ if (prop === "0") {
+ enumerable = true;
+ }
+ }
+ }
+
+ return enumerable;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-4.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-4.js
new file mode 100644
index 000000000..28d894ceb
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-4.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-4.js
+ * @description Array.prototype.filter - value of returned array element can be changed or deleted
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = { 0: 11, 1: 9, length: 2 };
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ try {
+ var tempVal = newArr[1];
+ delete newArr[1];
+ return tempVal !== undefined && newArr[1] === undefined;
+ } catch (ex) {
+ return false;
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-5.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-5.js
new file mode 100644
index 000000000..9b87b51c1
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-5.js
+ * @description Array.prototype.filter - values of 'to' are passed in acending numeric order
+ */
+
+
+function testcase() {
+
+ var arr = [0, 1, 2, 3, 4];
+ var lastToIdx = 0;
+ var called = 0;
+ function callbackfn(val, idx, obj) {
+ called++;
+ if (lastToIdx !== idx) {
+ return false;
+ } else {
+ lastToIdx++;
+ return true;
+ }
+ }
+ var newArr = arr.filter(callbackfn);
+
+ return newArr.length === 5 && called === 5;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-6.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-6.js
new file mode 100644
index 000000000..960bbb2de
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-6.js
+ * @description Array.prototype.filter - values of 'to' are accessed during each iteration when 'selected' is converted to true and not prior to starting the loop
+ */
+
+
+function testcase() {
+
+ var toIndex = [];
+ var called = 0;
+
+ //By below way, we could verify that 'to' would be setted as 0, 1, ..., length - 1 in order, and each value will be setted one time.
+ function callbackfn(val, idx, obj) {
+ called++;
+ //Each position should be visited one time, which means 'to' is accessed one time during iterations.
+ if (toIndex[idx] === undefined) {
+ //when current position is visited, its previous index should has been visited.
+ if (idx !== 0 && toIndex[idx - 1] === undefined) {
+ return false;
+ }
+ toIndex[idx] = 1;
+ return true;
+ } else {
+ return false;
+ }
+ }
+ var newArr = [11, 12, 13, 14].filter(callbackfn, undefined);
+
+ return newArr.length === 4 && called === 4;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1.js
new file mode 100644
index 000000000..62bb4e2b5
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1.js
+ * @description Array.prototype.filter - getOwnPropertyDescriptor(all true) of returned array element
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj){
+ if(val % 2)
+ return true;
+ else
+ return false;
+ }
+ var srcArr = [0,1,2,3,4];
+ var resArr = srcArr.filter(callbackfn);
+ if (resArr.length > 0){
+ var desc = Object.getOwnPropertyDescriptor(resArr, 1)
+ if(desc.value === 3 && //srcArr[1] = true
+ desc.writable === true &&
+ desc.enumerable === true &&
+ desc.configurable === true){
+ return true;
+ }
+ }
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-10.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-10.js
new file mode 100644
index 000000000..290a679a0
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-10.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-10.js
+ * @description Array.prototype.filter return value of callbackfn is a number (value is negative number)
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return -5;
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-11.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-11.js
new file mode 100644
index 000000000..176339d9c
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-11.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-11.js
+ * @description Array.prototype.filter return value of callbackfn is a number (value is Infinity)
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return Infinity;
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-12.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-12.js
new file mode 100644
index 000000000..e9d2143e2
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-12.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-12.js
+ * @description Array.prototype.filter return value of callbackfn is a number (value is -Infinity)
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return -Infinity;
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-13.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-13.js
new file mode 100644
index 000000000..1c516266a
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-13.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-13.js
+ * @description Array.prototype.filter return value of callbackfn is a number (value is NaN)
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return NaN;
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 0 && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-14.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-14.js
new file mode 100644
index 000000000..36d655f3c
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-14.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-14.js
+ * @description Array.prototype.filter return value of callbackfn is an empty string
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return "";
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 0 && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-15.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-15.js
new file mode 100644
index 000000000..ffdc7713c
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-15.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-15.js
+ * @description Array.prototype.filter return value of callbackfn is a non-empty string
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return "non-empty string";
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-16.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-16.js
new file mode 100644
index 000000000..0b46f3462
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-16.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-16.js
+ * @description Array.prototype.filter return value of callbackfn is a Function object
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return function () { };
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-17.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-17.js
new file mode 100644
index 000000000..3326db653
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-17.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-17.js
+ * @description Array.prototype.filter return value of callbackfn is an Array object
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return new Array(10);
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-18.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-18.js
new file mode 100644
index 000000000..90359d933
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-18.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-18.js
+ * @description Array.prototype.filter return value of callbackfn is a String object
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return new String();
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-19.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-19.js
new file mode 100644
index 000000000..09fc7e168
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-19.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-19.js
+ * @description Array.prototype.filter return value of callbackfn is a Boolean object
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return new Boolean();
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-2.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-2.js
new file mode 100644
index 000000000..07a259d7e
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-2.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-2.js
+ * @description Array.prototype.filter - return value of callbackfn is undefined
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, o) {
+ accessed = true;
+ return undefined;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+ return newArr.length === 0 && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-20.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-20.js
new file mode 100644
index 000000000..19c94d874
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-20.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-20.js
+ * @description Array.prototype.filter - return value of callbackfn is a Number object
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return new Number();
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-21.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-21.js
new file mode 100644
index 000000000..76aa74511
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-21.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-21.js
+ * @description Array.prototype.filter - return value of callbackfn is the Math object
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return Math;
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-22.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-22.js
new file mode 100644
index 000000000..7e022a826
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-22.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-22.js
+ * @description Array.prototype.filter - return value of callbackfn is a Date object
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return new Date();
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-23.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-23.js
new file mode 100644
index 000000000..24e77b5c2
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-23.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-23.js
+ * @description Array.prototype.filter - return value of callbackfn is a RegExp object
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return new RegExp();
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-24.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-24.js
new file mode 100644
index 000000000..b9ad2a5aa
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-24.js
@@ -0,0 +1,37 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-24.js
+ * @description Array.prototype.filter - return value of callbackfn is the JSON object
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return JSON;
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 1 && newArr[0] === 11;
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-25.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-25.js
new file mode 100644
index 000000000..61b3cc5da
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-25.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-25.js
+ * @description Array.prototype.filter - return value of callbackfn is an Error object
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return new EvalError();
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-26.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-26.js
new file mode 100644
index 000000000..918a5ff8e
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-26.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-26.js
+ * @description Array.prototype.filter - return value of callbackfn is the Arguments object
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return arguments;
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-28.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-28.js
new file mode 100644
index 000000000..eb1f7ac79
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-28.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-28.js
+ * @description Array.prototype.filter - return value of callbackfn is the global object
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return fnGlobalObject();
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-29.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-29.js
new file mode 100644
index 000000000..0c5162588
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-29.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-29.js
+ * @description Array.prototype.filter - false prevents element added to output Array
+ */
+
+
+function testcase() {
+
+ var called = 0;
+
+ function callbackfn(val, idx, obj) {
+ called++;
+ return val > 10;
+ }
+
+ var obj = { 0: 11, 1: 8, length: 20 };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+ return newArr.length === 1 && newArr[0] !== 8 && called === 2;
+
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-3.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-3.js
new file mode 100644
index 000000000..883140e5f
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-3.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-3.js
+ * @description Array.prototype.filter - return value of callbackfn is null
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return null;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+ return newArr.length === 0 && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-30.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-30.js
new file mode 100644
index 000000000..f4f743ec5
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-30.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-30.js
+ * @description Array.prototype.filter - return value (new Boolean(false)) of callbackfn is treated as true value
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return new Boolean(false);
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-4.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-4.js
new file mode 100644
index 000000000..a74d1ce43
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-4.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-4.js
+ * @description Array.prototype.filter - return value of callbackfn is a boolean (value is false)
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return false;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+ return newArr.length === 0 && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-5.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-5.js
new file mode 100644
index 000000000..0e4f7d750
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-5.js
@@ -0,0 +1,38 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-5.js
+ * @description Array.prototype.filter - return value of callbackfn is a boolean (value is true)
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-6.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-6.js
new file mode 100644
index 000000000..6eb83749d
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-6.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-6.js
+ * @description Array.prototype.filter - return value of callbackfn is a number (value is 0)
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return 0;
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 0 && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-7.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-7.js
new file mode 100644
index 000000000..c30668fca
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-7.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-7.js
+ * @description Array.prototype.filter - return value of callbackfn is a number (value is +0)
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return +0;
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 0 && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-8.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-8.js
new file mode 100644
index 000000000..0de918507
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-8.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-8.js
+ * @description Array.prototype.filter - return value of callbackfn is a nunmber (value is -0)
+ */
+
+
+function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return -0;
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 0 && accessed;
+ }
+runTestCase(testcase);
diff --git a/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-9.js b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-9.js
new file mode 100644
index 000000000..4e5ff8f10
--- /dev/null
+++ b/external/contributions/Microsoft/ietcLatest/TestCases/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-9.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.
+
+/**
+ * @path ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-9.js
+ * @description Array.prototype.filter - return value of callbackfn is a number (value is positive number)
+ */
+
+
+function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return 5;
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 1 && newArr[0] === 11;
+ }
+runTestCase(testcase);