Tests that console logging different types of functions correctly.

console-functions.js:27 ƒ simple() {}
console-functions.js:28 ƒ simple()
    arguments: null
    caller: null
    length: 0
    name: "simple"
    prototype: {constructor: ƒ}
    __proto__: ƒ ()
    [[FunctionLocation]]: console-functions.js:13
    [[Scopes]]: Scopes[1]
console-functions.js:27 async ƒ asyncSimple() {}
console-functions.js:28 async ƒ asyncSimple()
    arguments: (...)
    caller: (...)
    length: 0
    name: "asyncSimple"
    __proto__: AsyncFunction
    [[FunctionLocation]]: console-functions.js:14
    [[Scopes]]: Scopes[1]
console-functions.js:27 ƒ* genSimple() {}
console-functions.js:28 ƒ* genSimple()
    arguments: (...)
    caller: (...)
    length: 0
    name: "genSimple"
    prototype: Generator {}
    __proto__: GeneratorFunction
    [[FunctionLocation]]: console-functions.js:15
    [[IsGenerator]]: true
    [[Scopes]]: Scopes[1]
console-functions.js:27 ƒ (){}
console-functions.js:28 ƒ anonymous()
    arguments: null
    caller: null
    length: 0
    name: ""
    prototype: {constructor: ƒ}
    __proto__: ƒ ()
    [[FunctionLocation]]: console-functions.js:16
    [[Scopes]]: Scopes[1]
console-functions.js:27 ƒ (x, y){}
console-functions.js:28 ƒ anonymous(x, y)
    arguments: null
    caller: null
    length: 2
    name: ""
    prototype: {constructor: ƒ}
    __proto__: ƒ ()
    [[FunctionLocation]]: console-functions.js:17
    [[Scopes]]: Scopes[1]
console-functions.js:27 ƒ namedArgs(x) {}
console-functions.js:28 ƒ namedArgs(x)
    arguments: null
    caller: null
    length: 1
    name: "namedArgs"
    prototype: {constructor: ƒ}
    __proto__: ƒ ()
    [[FunctionLocation]]: console-functions.js:18
    [[Scopes]]: Scopes[1]
console-functions.js:27 ƒ namedArgs2(x, y) {}
console-functions.js:28 ƒ namedArgs2(x, y)
    arguments: null
    caller: null
    length: 2
    name: "namedArgs2"
    prototype: {constructor: ƒ}
    __proto__: ƒ ()
    [[FunctionLocation]]: console-functions.js:19
    [[Scopes]]: Scopes[1]
console-functions.js:27 ƒ ({}) {}
console-functions.js:28 ƒ anonymous({})
    arguments: null
    caller: null
    length: 1
    name: ""
    prototype: {constructor: ƒ}
    __proto__: ƒ ()
    [[FunctionLocation]]: console-functions.js:20
    [[Scopes]]: Scopes[1]
console-functions.js:27 ƒ* whitespace(  x  )    {   }
console-functions.js:28 ƒ* whitespace(  x  )
    arguments: (...)
    caller: (...)
    length: 1
    name: "whitespace"
    prototype: Generator {}
    __proto__: GeneratorFunction
    [[FunctionLocation]]: console-functions.js:21
    [[IsGenerator]]: true
    [[Scopes]]: Scopes[1]
console-functions.js:27 async ƒ whitespace2(  x  ,  y  ,  z  )    {   }
console-functions.js:28 async ƒ whitespace2(  x  ,  y  ,  z  )
    arguments: (...)
    caller: (...)
    length: 3
    name: "whitespace2"
    __proto__: AsyncFunction
    [[FunctionLocation]]: console-functions.js:22
    [[Scopes]]: Scopes[1]
console-functions.js:31 {func0: ƒ, func1: ƒ, func2: ƒ, func3: ƒ, func4: ƒ, …}
    func0: ƒ simple()
    func1: async ƒ asyncSimple()
    func2: ƒ* genSimple()
    func3: ƒ ()
    func4: ƒ (x, y)
    func5: ƒ namedArgs(x)
    func6: ƒ namedArgs2(x, y)
    func7: ƒ ({})
    func8: ƒ* whitespace(  x  )
    func9: async ƒ whitespace2(  x  ,  y  ,  z  )
    __proto__: Object
console-functions.js:32 Object
    func0: ƒ simple()
    func1: async ƒ asyncSimple()
    func2: ƒ* genSimple()
    func3: ƒ ()
    func4: ƒ (x, y)
    func5: ƒ namedArgs(x)
    func6: ƒ namedArgs2(x, y)
    func7: ƒ ({})
    func8: ƒ* whitespace(  x  )
    func9: async ƒ whitespace2(  x  ,  y  ,  z  )
    __proto__: Object

