           prop4: 4
           '$prop5': 'nonExport'
           prop6: 'defaultValue'
+          prop7:719
       it 'should merge to itself as a new plain object', ->
         result = createObjectWith PM, makeArgs prop1: 121, prop2: 453, hidden:399, notExi:111
         obj = result.mergeTo()

    hidden:
      enumerable: false
      value: 123
    
  defaultValueSupport = false
  assignmentSupport = false

          prop4: null
          '$prop5': 'nonExport'
          prop6: 'defaultValue'
          prop7:719

      if defaultValueSupport
        it 'should merge to itself and skip default value', ->
          result = createObjectWith PM, makeArgs prop1: 121, prop2: 453, hidden:399, notExi:111
          obj = result.mergeTo(true)
          obj.should.be.deep.equal 
            prop1: 121
            prop2: 453
    describe '#exportTo()', ->
      it 'should exportTo a object and skip readonly property', ->
        result = createObjectWith PM, makeArgs prop1: 121, prop2: 453, hidden:399, notExi:111, prop4:234, prop6:undefined
        result.exportTo(null, null, null, true).should.be.deep.equal prop1: 121, prop2: 453, prop4: 234

      if defaultValueSupport
        it 'should exportTo a object and skip readonly property and not skip default value', ->
          result = createObjectWith PM, makeArgs prop1: 121, prop2: 453, hidden:399, notExi:111, prop4:234, prop6:undefined
          result = result.exportTo(null, null, false, true)
          result.should.be.deep.equal
            prop1: 121
            prop2: 453
            prop4: 234
            prop6: 'defaultValue'
