// Copyright (C) 2015 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
es6id: 26.1
description: >
  The Reflect object is an ordinary object.
info: |
  26.1 The Reflect Object

  The Reflect object is the %Reflect% intrinsic object and the initial value of
  the Reflect property of the global object. The Reflect object is an ordinary
  object.

  The Reflect object is not a function object. It does not have a [[Construct]]
  internal method; it is not possible to use the Reflect object as a constructor
  with the new operator. The Reflect object also does not have a [[Call]]
  internal method; it is not possible to invoke the Reflect object as a
  function.
---*/

assert.sameValue(typeof Reflect, 'object', '`typeof Reflect` is `"object"`');

// Reflect is not callable
assert.throws(TypeError, function() {
  Reflect();
});

// Reflect doesn't have a constructor
assert.throws(TypeError, function() {
  new Reflect();
});