Commit Graph

27 Commits

Author SHA1 Message Date
Mark Rowe 30e58022cf Include property names in type error exceptions thrown by Realm.create (#1069)
* Add and adopt `Value::is_binary` / `Value::to_binary` / `Value::from_binary`.

These methods allow conversions between `BinaryData` and the equivalent
JavaScript types without using `NativeAccessor`. Instead,
`NativeAccessor` now itself delegates to these methods.

* Have `NativeAccessor::value_for_property` and `RealmObjectClass::set_property`
verify that values are valid for the property in question.

If not, we throw an exception that includes the name and type of the
property in question.

`NativeAccessor` is changed to always hold a reference to a `Realm` and
an `ObjectSchema` in order to make this validation possible.

* Fix the Windows build.

* Remove an unused, incorrect forward declaration of a template class
  named `Realm` that caused ambiguity with object store's `Realm` class.
* Disambiguate between `realm::js::PropertyType` and
  `realm::PropertyType`.

* Update CHANGELOG.md
2017-06-20 14:40:01 +02:00
Mark Rowe b108d06231 Use `int64_t` rather than `long long` as the integer type in the accessor
implementation.

This matches what core uses for integers, and avoids ambiguity that
otherwise results when `int64_t` is declared as `long` rather than `long long`.
2017-05-22 20:17:35 -07:00
Mark Rowe 75f8b28831 Fix the Node build.
Tweak the signature on some of the accessor methods to take
`JSEngine::Value`s by value rather than by const reference. Some Node
APIs appear to assume that only non-const objects will be used.
2017-05-22 16:19:15 -07:00
Thomas Goyne 08052e12f6 Update to work with new API for arrays of primitives 2017-05-17 11:02:45 -07:00
Thomas Goyne f8ed437003 Update the binding for object store API changes 2016-08-02 09:31:25 -07:00
Thomas Goyne b59af706ea Update binding code for API changes 2016-07-18 14:15:25 -07:00
Ari Lazier 2e3b95f2e7 merge latest master 2016-06-14 16:40:57 -07:00
Ari Lazier 81a32909c1 update to latest object store changes 2016-06-14 14:33:27 -07:00
Ari Lazier 2b48ebb30a negate if statements 2016-06-13 14:07:50 -07:00
Scott Kyle cd20d870dd Fix crash from querying with object from another Realm 2016-06-09 15:32:37 -07:00
Ari Lazier 81feca0ce9 fix for setting properties to objects from other realms 2016-06-08 11:22:12 -07:00
Mark Rowe 344fc42d4e Avoid copying `Object` unnecessarily. 2016-05-31 15:54:43 -07:00
Mark Rowe efdf0e01a9 Avoid copying `List` unnecessarily. 2016-05-31 15:27:48 -07:00
Ari Lazier 47a279cc67 use mod 2016-05-24 08:25:44 -07:00
Ari Lazier 604fcc73f2 fix for negative timestamps 2016-05-24 08:23:21 -07:00
Ari Lazier 6af98acd11 combine other classes 2016-05-16 15:43:46 -07:00
Ari Lazier e76cb3b905 combine class definitions and implementations for list and results 2016-05-16 15:43:46 -07:00
Ari Lazier 54fede2715 upgrade to latest core and object store 2016-05-05 13:09:07 -07:00
Scott Kyle 8ff23b5411 Fix build issues on Android
GCC was more strict with how we handled some types.
2016-04-18 18:30:55 -07:00
Scott Kyle 1ca5a43982 Revert TValue to ValueType, etc. 2016-04-18 12:18:13 -07:00
Scott Kyle d57483c675 Rename js_object.hpp -> js_realm_object.hpp 2016-04-18 01:14:48 -07:00
Ari Lazier bd4088ce91 key templates off explicitly defined classes rather than the internal type 2016-04-15 13:47:01 -07:00
Ari Lazier c817ac7eac create -> create_instance 2016-04-14 11:19:01 -07:00
Ari Lazier 84559316d8 compact property getter/setter types 2016-04-14 11:06:17 -07:00
Ari Lazier 0b2a75bdc3 use different naming convention for extracted template types 2016-04-14 10:54:43 -07:00
Scott Kyle c0c65ad620 Make all JSC tests pass again 2016-04-13 03:21:18 -07:00
Scott Kyle 05c432deb1 WIP Node support
The JS engine details are mostly abstracted away. This breaks JSC support until the rest of the pieces are in place. The Node version builds and runs, but crashes when creating a Realm object.
2016-04-12 11:53:30 -07:00