diff --git a/src/js_realm_object.hpp b/src/js_realm_object.hpp index 961f42f4..a4839741 100644 --- a/src/js_realm_object.hpp +++ b/src/js_realm_object.hpp @@ -110,7 +110,12 @@ void RealmObject::get_property(ContextType ctx, ObjectType object, const Stri template bool RealmObject::set_property(ContextType ctx, ObjectType object, const String &property, ValueType value) { auto realm_object = get_internal>(object); - realm_object->set_property_value(ctx, property, value, true); + try { + realm_object->set_property_value(ctx, property, value, true); + } + catch (InvalidPropertyException &ex) { + return false; + } return true; } diff --git a/tests/js/object-tests.js b/tests/js/object-tests.js index db41c5dd..3abad10b 100644 --- a/tests/js/object-tests.js +++ b/tests/js/object-tests.js @@ -456,4 +456,17 @@ module.exports = BaseTest.extend({ obj.doubleCol; }); }, + + testIgnoredProperties: function() { + var realm = new Realm({schema: [schemas.TestObject]}); + var obj; + realm.write(function() { + obj = realm.create('TestObject', {doubleCol: 1, ignored: true}); + }); + + TestCase.assertEqual(obj.doubleCol, 1); + TestCase.assertEqual(obj.ignored, undefined); + obj.ignored = true; + TestCase.assertEqual(obj.ignored, true); + } });