             scope = scopeManager.scopes[2]
             expect(scope.variables).to.have.length 2  # [arguments, b]
             expect(scope.references).to.have.length 2  # [b, A]
-
-            reference = scope.references[1]
-            expect(reference.from).to.equal scope
-            expect(reference.identifier.name).to.equal 'A'
-            expect(reference.resolved).to.equal scopeManager.scopes[0].variables[0]
-            expect(reference.writeExpr).to.be.undefined
-            expect(reference.isWrite()).to.be.false
-            expect(reference.isRead()).to.be.true
-
-        it 'the reference in default parameters should be resolved.', ->
-            ast = harmony.parse """
-            class A {}
-            function foo(b = new A()) {
-            }
-            """
-
-            scopeManager = escope.analyze ast, ecmaVersion: 6
-            expect(scopeManager.scopes).to.have.length 3  # [global, A, foo]
-
-            scope = scopeManager.scopes[2]
-            expect(scope.variables).to.have.length 2  # [arguments, b]
-            expect(scope.references).to.have.length 2  # [b, A]
-
-            reference = scope.references[1]
-            expect(reference.from).to.equal scope
-            expect(reference.identifier.name).to.equal 'A'
-            expect(reference.resolved).to.equal scopeManager.scopes[0].variables[0]
-            expect(reference.writeExpr).to.be.undefined
-            expect(reference.isWrite()).to.be.false
-            expect(reference.isRead()).to.be.true
-
-        it 'the reference in default values of destructuring should be resolved.', ->
-            ast = harmony.parse """
-            class A {}
-            function foo() {
-                let {b: new A()} = {};
-            }
-            """
-
-            scopeManager = escope.analyze ast, ecmaVersion: 6
-            expect(scopeManager.scopes).to.have.length 3  # [global, A, foo]
-
-            scope = scopeManager.scopes[2]
-            expect(scope.variables).to.have.length 2  # [arguments, A]
-            expect(scope.references).to.have.length 2  # [b, a]
 
             reference = scope.references[1]
             expect(reference.from).to.equal scope

            expect(reference.isWrite()).to.be.false
            expect(reference.isRead()).to.be.true

        it 'the reference in default parameters should NOT be resolved.', ->
            ast = harmony.parse """
            var a = 0;
            function foo(b = a) {
            }
            """

            scopeManager = escope.analyze ast, ecmaVersion: 6
            expect(scopeManager.scopes).to.have.length 2  # [global, foo]

            scope = scopeManager.scopes[1]
            expect(scope.variables).to.have.length 2  # [arguments, b]
            expect(scope.references).to.have.length 2  # [b, a]

            reference = scope.references[1]
            expect(reference.from).to.equal scope
            expect(reference.identifier.name).to.equal 'a'
            expect(reference.resolved).to.be.null
            expect(reference.writeExpr).to.be.undefined
            expect(reference.isWrite()).to.be.false
            expect(reference.isRead()).to.be.true

        it 'the reference in default values of destructuring should NOT be resolved.', ->
            ast = harmony.parse """
            var a = 0;
            function foo() {
                var {b: a} = {};
            }
            """

            scopeManager = escope.analyze ast, ecmaVersion: 6
            expect(scopeManager.scopes).to.have.length 2  # [global, foo]

            scope = scopeManager.scopes[1]
            expect(scope.variables).to.have.length 2  # [arguments, b]
            expect(scope.references).to.have.length 2  # [b, a]

            reference = scope.references[1]
            expect(reference.from).to.equal scope
            expect(reference.identifier.name).to.equal 'a'
            expect(reference.resolved).to.be.null
            expect(reference.writeExpr).to.be.undefined
            expect(reference.isWrite()).to.be.false
            expect(reference.isRead()).to.be.true

    describe 'When there is a `function` declaration on global,', ->
        it 'the reference on global should NOT be resolved.', ->
            ast = harmony.parse """

            expect(reference.isWrite()).to.be.false
            expect(reference.isRead()).to.be.true

    describe 'When there is a `var` declaration on global,', ->
        it 'the reference on global should NOT be resolved.', ->
            ast = harmony.parse """
