Please add topics for discussion (and your status if you’re a contributor).
Epics:
Live Stream:
Last Week
- working on can-reflect (can-stache done, finishing up can-stache-bindings)
- presented at Indy.js
- published Testee 0.5.1
Next Week
Topic: What is can-reflect?
Attendees: @bmomberger-bitovi @chasen @cherif_b @kdillon @matthewp @mickmcgrath13 @phillipskevin
Discussed topics:
What is can-reflect
?
- Based on Reflect API, which standardizes the APIs for things like getting and setting properties so code can work with any kind of object
- Reflect JS Bin example
-
can-reflect: same idea as the Reflect API, for CanJS observables
- We’re in the process of changing all of our code to use
can-reflect
- Benefits:
- Speed!
can-stache
will also be updated to use can-observation, making it upwards of 30% faster
- Makes it easier to use different types of observables in the same codebase, i.e. an app using
can-map
can start to use can-define/map/map
more easily
- Enables easier interoperability with new types, e.g. Kefir.js streams, RxJS streams, etc.
- Building modules that work with CanJS observables will be significantly easier
We briefly discussed FuncUnit QUnit 2 support.
1 Like
@BigAB pointed out that my Reflect example is not actually correct. Reflect.set
does not actually do the same thing as Map.prototytpe.set
when called on a Map
instance. Hopefuly this example will clarify:
var map = new Map();
map.set('hello', 'world');
Reflect.set(map, 'hello', 'universe');
Running this code ends up with map
looking like:
This shows that Reflect.set(map, 'hello', 'universe');
is just doing map['hello'] = 'universe';
and not correctly setting the value internally on the map.
The point that this example was trying to make was that Reflect
will smooth out APIs to work across different object types. This isn’t actually true with Reflect
, but is true with can-reflect
. Although this example is bad, hopefully it still explains what can-reflect
is trying to do.
1 Like
Right click should now send PointerEvents like all other forms of mouse-interaction. Note that PointerType is set to mouse by default, even on touch devices. We are still working on a system that will allow for more flexibility for emulating device environment.
@kdillon I’ve been thinking that a good way to organize the code might be event streams. We’d let people dispatch generic interactions, then depending on the browser, these would result in dispatched events.