// Copyright (c) 2012 Ecma International.  All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
es5id: 15.2.3.7-2-18
description: >
    Object.defineProperties - argument 'Properties' is the global
    object
---*/

var global = this;
var obj = {};
var result = false;

try {
  Object.defineProperty(this, "prop", {
    get: function() {
      result = (this === global);
      return {};
    },
    enumerable: true,
    configurable: true
  });

  Object.defineProperties(obj, this);
} catch (e) {
  if (!(e instanceof TypeError)) throw e;
  result = true;
} finally {
  delete this.prop;
}

assert(result, 'result !== true');
