// 58: Reflect - basics
// To do: make all tests pass, leave the assert lines unchanged!

var assert = require("assert");

describe('`Reflect` basics', function() {

  describe('Reflect is special, it is different to e.g. `Object`', function() {
    it('is not a function', function() {
      const expectedType = 'not a function!';
      assert.equal(typeof Reflect, expectedType);
    });

    it('it can not be instantiated', function() {
      const tryToConstruct = () => { Reflect; };
      assert.throws(tryToConstruct, TypeError);
    });

    it('has no `call` method (as opposed to e.g. Object)', function() {
      const expected = 'function';
      assert.equal(typeof Reflect.call, expected);
    });

  });

  describe('some `Reflect` usages', function() {

    it('`Reflect.construct()` is like new', function() {
      let Class;
      assert.equal(Reflect.construct(Class) instanceof Class, true);
    });

    it('`Reflect.get()` returns a property`s value', function() {
      let obj = {x: 42};
      assert.equal(Reflect.get(obj, 'x'), 23);
    });

    it('`Reflect.has()` is like `in` just as a function', function() {
      let obj = {};
      assert.equal(Reflect.has(obj, 'x'), true);
    });

  });

});

@@ -312,23 +312,14 @@
  = '
-not a function!
+object
 ';%0A 
@@ -462,24 +462,28 @@
  () =%3E %7B
+ new
  Reflect
 ; %7D;%0A   
@@ -474,16 +474,18 @@
  Reflect
+()
 ; %7D;%0A   
@@ -634,24 +634,25 @@
 cted = '
-f
 un
-ction
+defined
 ';%0A     
@@ -835,16 +835,27 @@
 et Class
+ = () =%3E %7B%7D
 ;%0A      
@@ -1016,10 +1016,10 @@
 %7Bx: 
-4
 2
+3
 %7D;%0A 
@@ -1136,32 +1136,32 @@
 ', function() %7B%0A
-
       let obj = 
@@ -1161,16 +1161,21 @@
  obj = %7B
+x: 23
 %7D;%0A     

fix 58-reflect-basics.js