// Copyright 2009 the Sputnik authors.  All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
info: >
    Assume F is a Function object. When the [[HasInstance]] method of F is called with value V and V is an object, the following steps are taken:
    i) Call the [[Get]] method of F with property name "prototype".
    ii) Let O be Result(i) and O is an object.
    iii) Let V be the value of the [[Prototype]] property of V.
    iv) If V is null, return false.
    v)  If O and V refer to the same object or if they refer to objects joined to each other (13.1.2), return true.
    vi) Go to step iii)
es5id: 15.3.5.3_A3_T2
description: F.prototype is Object.prototype, and V is empty object
---*/

var FAKEFACTORY;
FAKEFACTORY = Function();

var fakeinstance;
fakeinstance = {};

//CHECK#1
if (fakeinstance instanceof FAKEFACTORY) {
  $ERROR('#1: If O and V refer to the same object or if they refer to objects joined to each other (13.1.2), return true');
}

FAKEFACTORY.prototype=Object.prototype;

//CHECK#2
if (!(fakeinstance instanceof FAKEFACTORY)) {
  $ERROR('#2: If O and V refer to the same object or if they refer to objects joined to each other (13.1.2), return true');
}
