ES5Harness.registerTest({

    id: "15.4.4.16-7-c-ii-18",

    path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-18.js",

    description: "Array.prototype.every - 'this' of 'callbackfn' is an String object when T is not an object (T is a string primitive)",

    test: function testcase() {

        var accessed = false;

        function callbackfn(val, idx, obj) {
            accessed = true;
            return 'hello' === this.valueOf();
        }

        var obj = { 0: 11, length: 2 };

        return Array.prototype.every.call(obj, callbackfn, "hello") && accessed;
    },

    precondition: function prereq() {
        return fnExists(Array.prototype.every);
    }

});
