1.0 Direct Testing, no starting at Parameter * The indexOf String "Hello" is 0 * The indexOf String "Hi" is 1 * The indexOf Boolean 'true' is 2 * The indexOf Number '5' is 3 * The indexOf Number '9' is 5 2.0 A firstIndex parameter of 1 (positive offset test) * The indexOf String "Hi" is 1 * The indexOf Boolean 'true' is 2 * The indexOf Number 5 is 3 * The indexOf Number 9 is 5 3.0 A firstIndex parameter of -4 (negative offset test) * The indexOf String "Hi" is -1 * The indexOf Boolean 'true' is -1 * The indexOf Number 5 is 4 * The indexOf Number 9 is 5 4.0 A big positive firstIndex of 1000, to test the firstIndex > length * The indexOf Number '9' is -1 5.0 A big positive firstIndex of 4294967301, to test when firstIndex > width of int (32-bits) * The indexOf Boolean 'true' is -1 6.0 No arguments * No arguments passed: 7 * No arguments passed: -1 7.0 Looking for null * The indexOf null is 6 * The indexOf null is -1 8.0 Extra arguments * The indexOf String "Hello" is 0 9.0 NaN firstIndex * The indexOf String "Hi" is 0 10.0 Small firstIndex * The indexOf Boolean 'true' is 2 11.0 Negative firstIndex bigger than the length of the array * The indexOf Boolean 'true' is 2 12.0 Negative firstIndex bigger than 32-bits * The indexOf Boolean 'true' is 2 13.0 Looking for undefined * The indexOf undefined is 7 * The indexOf undefined is -1 * The indexOf undefined is 3 * The indexOf undefined is -1 * The indexOf undefined is -1 14.0 Object using the Array prototype * The indexOf String "Hello" is 0 * The indexOf String "Hi" is 1 * The indexOf Boolean 'true' is 2 * The indexOf Number '5' is 3 * The indexOf Number '9' is 5