// Copyright 2011 Google Inc.  All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
info: |
    Detects whether the value of a function's "prototype" property
    as seen by normal object operations might deviate from the value
    as seem by Object.getOwnPropertyDescriptor
es5id: 15.3.3.1_A4
description: >
    Checks if reading a function's .prototype directly  agrees with
    reading it via Object.getOwnPropertyDescriptor, after  having set
    it by Object.defineProperty.
---*/

function foo() {}

Object.defineProperty(foo, 'prototype', {
  value: {}
});
if (foo.prototype !==
  Object.getOwnPropertyDescriptor(foo, 'prototype').value) {
  $ERROR("A function.prototype's descriptor lies");
}
