           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 
-          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'

          obj.should.be.deep.equal
            prop1: 121, prop2: 453, prop3:undefined, prop4: null, $prop5: 'nonExport'
            prop6: 'defaultValue'
            assign1: sd:91, hi: 'world'
      it 'should assign itself to another plain object', ->
        result = createObjectWith PM, makeArgs prop1: 121, prop2: 453, hidden:399, notExi:111

        obj.should.be.deep.equal
          prop1: 121, prop2: 453, prop3:undefined, prop4: null, $prop5: 'nonExport'
          prop6: 'defaultValue'
          prop7:719

      it 'should assign itself to another object', ->
        result = createObjectWith PM, makeArgs prop1: 121, prop2: 453, hidden:399, notExi:111
