You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "Tanase Butcaru (JIRA)" <ji...@apache.org> on 2016/05/06 20:55:12 UTC

[jira] [Created] (CB-11223) Better check for date validity of contact.birthday / Fix: RangeError Invalid Date

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: issues-unsubscribe@cordova.apache.org
For additional commands, e-mail: issues-help@cordova.apache.org