Tanase Butcaru created CB-11223:
-----------------------------------

             Summary: Better check for date validity of contact.birthday / Fix: 
RangeError Invalid Date
                 Key: CB-11223
                 URL: https://issues.apache.org/jira/browse/CB-11223
             Project: Apache Cordova
          Issue Type: Improvement
          Components: Plugin Contacts
         Environment: Desktop Firefox & Safari
Android & iOS Webview
            Reporter: Tanase Butcaru
            Priority: Critical


The issue: on Safari & iOS webview if we perform a _toJSON()_ on a instanceof 
Date object which is a 'Invalid Date' object, that throws an error. This does 
not happen on Firefox & Chrome!

I encountered this issue while sending device contacts over _socket.io_ which 
iterates over contacts props and does a _toJSON()_, but the problem was that 
the Date object from _birthday_ property was not valid.

Simple test case:
{code:javascript}
var contact = { birthday: null }; //data provided by cordova-plugin-contacts

try {
    contact.birthday = new Date(parseFloat(contact.birthday));
}
catch(e) {
   console.log(e); //this will never be called
}

//where the error occures..
contact.birthday.toJSON();
{code}


An 'Invalid Date' error does not throw anything, so a simple try-catch block 
doesn't pass the validity of that date.

The changes I made in _convertUtils.js_ resolves this problem.





--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to