Are you ever calling `Platform.performMicrotaskCheckpoint();`?

In the absence of native `Object.observe` support, it's left to the
developer to trigger dirty checking by calling
`Platform.performMicrotaskCheckpoint();`.

`platform.js` does this automatically on a cadence. In your custom setup,
you have to handle this yourself.

Scott

On Tue, Jan 28, 2014 at 2:07 PM, Rob Eisenberg
<[email protected]>wrote:

> Interestingly...if I drop your vulcanized.js file into my solution, I have
> the same bug as I've previously reported. If I drop the platform.js in
> instead, everything works fine. So, there's still something else that's
> different...and it's a silent fail scenario because I get no errors in the
> console, but my custom elements don't work correctly. Any ideas on why that
> might be?
>
>
> On Wed, Jan 22, 2014 at 5:04 PM, Eric Bidelman <[email protected]> wrote:
>
>>  These videos are great Scott. Very helpful. Rob and I talked about
>> shortening them a bit and overlaying some commentary.
>>
>> If people are interested in building + using a single .min.js file for a
>> polyfill, it's basically the same procedure. Instead of enumerating the
>> sources for the polyfill, install the node modules and build with Grunt.
>> Example building the Custom Elements polyfill:
>>
>>     bower install Polymer/CustomElements
>>
>>     cd bower_components/CustomElements
>>
>>     npm install
>>
>>     grunt
>>
>> ...gets you custom-elements.min.js
>>
>>
>> On Wed, Jan 22, 2014 at 10:52 AM, Rob Eisenberg <
>> [email protected]> wrote:
>>
>>> Thanks Scott! I'll take a look at this soon.
>>>
>>>
>>> On Wed, Jan 22, 2014 at 1:49 PM, Scott Miles <[email protected]> wrote:
>>>
>>>> Erps, actual 'vulcanizing' video link:
>>>>
>>>> http://www.youtube.com/watch?v=FvFfJ0ODj0Y&feature=youtu.be
>>>>
>>>>
>>>> On Wed, Jan 22, 2014 at 10:48 AM, Scott Miles <[email protected]>wrote:
>>>>
>>>>> Remixing the polyfills is supposed to be relatively easy.  I assume
>>>>> the devil is in the details, so I made a couple of screen captures of me
>>>>> starting from a blank folder and building up functionality, ultimately
>>>>> constructing a single js file containing the platform remix.
>>>>>
>>>>> remixing:
>>>>> http://www.youtube.com/watch?v=MfZxqONVzJA&feature=youtu.be
>>>>>
>>>>> vulcanizing the js:
>>>>> http://www.youtube.com/watch?v=MfZxqONVzJA&feature=youtu.be
>>>>>
>>>>> The resulting files are zipped up here:
>>>>> https://drive.google.com/file/d/0BwsasHLO95kdQXQzLTN2czFjVW8/edit?usp=sharing
>>>>>
>>>>> Tools used: Node, Bower, Terminal, Notepad, Browser.
>>>>>
>>>>> IMO, Bower is preferred over Git here, because we are read-only users
>>>>> in this context, and we can take advantage of the dependency fetching.
>>>>>
>>>>> The videos are kinda blurry (sorry!) and I there is no commentary. I
>>>>> figured we can do progressive refinement on these materials if they are
>>>>> found to be useful.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Tue, Jan 21, 2014 at 5:15 PM, Rob Eisenberg <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> Thanks for the feedback. Part of what I'm creating is similar to
>>>>>> x-tags, but with my own spin, based on my own experience building large
>>>>>> scale componentized UI. For now, while I'm prototyping, I think I'll just
>>>>>> use the platform.js file...but eventually I'm going to have to figure out
>>>>>> how to do a custom build without the shadow dom pieces.
>>>>>>
>>>>>>
>>>>>> On Tue, Jan 21, 2014 at 7:04 PM, <[email protected]> wrote:
>>>>>>
>>>>>>> Rob,
>>>>>>>
>>>>>>> I asked a similar question about the "necessity" of the Shadow DOM a
>>>>>>> few months ago -
>>>>>>> https://groups.google.com/forum/?fromgroups=#!topic/polymer-dev/oVWSsMhFDnc.
>>>>>>> Basic upshot was although the polyfills themselves don't have a
>>>>>>> *dependency* on the Shadow DOM, Polymer depends on it, and it will
>>>>>>> be used if you use platform.js as well, even if you are only planning on
>>>>>>> using part of the platform like custom elements.
>>>>>>>
>>>>>>> If you are looking for simple, non-shadow DOM pre-built library,
>>>>>>> x-tags is maybe the way to go (although from my experience, the x-tag
>>>>>>> community is way less active). It is the biggest issue we have with 
>>>>>>> Polymer
>>>>>>> - the shadow DOM polyfill is a bit invasive, and degrades performance - 
>>>>>>> in
>>>>>>> our case, polymer doubles the time to load a page compared to x-tags. We
>>>>>>> have decided we will need to try "re-package" parts of the Polymer 
>>>>>>> platform
>>>>>>> in our own library to get the performance characteristics we require, 
>>>>>>> which
>>>>>>> is a shame, because I really like the library and the layer of sugar it
>>>>>>> provides.
>>>>>>>
>>>>>>> Regards,
>>>>>>> Ian
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Tuesday, January 21, 2014 8:45:49 AM UTC+11, Rob Eisenberg wrote:
>>>>>>>
>>>>>>>> I think I can answer my own #3 question. Looks like the easiest way
>>>>>>>> to do this is to use pull-all.sh
>>>>>>>> I'd still like to know about the necessity of shadow dom and any
>>>>>>>> availability of pre-built platform libraries.
>>>>>>>>
>>>>>>>>
>>>>>>>> On Mon, Jan 20, 2014 at 4:35 PM, Rob Eisenberg <
>>>>>>>> [email protected]> wrote:
>>>>>>>>
>>>>>>>>> Ok. I found that just a few minutes ago. It looks like there are
>>>>>>>>> lots of little pieces that may be missing from what I've got. I've 
>>>>>>>>> got a
>>>>>>>>> few questions:
>>>>>>>>>
>>>>>>>>> 1. I purposefully excluded the shadow dom pieces from my build. Do
>>>>>>>>> you see any problems with that? Should custom elements still work, 
>>>>>>>>> assuming
>>>>>>>>> I'm not using shadow dom at all?
>>>>>>>>> 2. Where can I find the latest build of platform.js? Let's say I
>>>>>>>>> just want to make my life easy for now...and not do my own build. 
>>>>>>>>> Where do
>>>>>>>>> I get latest? None of the github releases seem to have any actual 
>>>>>>>>> built
>>>>>>>>> libraries in them.
>>>>>>>>> 3. Any advice on building this thing? There are tons of
>>>>>>>>> repositories. It seems like a major effort to track them all and keep 
>>>>>>>>> an
>>>>>>>>> updated build happening...thoughts?
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Mon, Jan 20, 2014 at 4:27 PM, Scott Miles <[email protected]>wrote:
>>>>>>>>>
>>>>>>>>>>  The build is sadly non-trivial, but you can start with the
>>>>>>>>>> manifest here:
>>>>>>>>>>
>>>>>>>>>> https://github.com/Polymer/platform-dev/blob/master/build.json
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Mon, Jan 20, 2014 at 12:21 PM, Rob Eisenberg <
>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>
>>>>>>>>>>> There's definitely a difference between my custom build of the
>>>>>>>>>>> pollyfills and platform.js. When I replace my build with 
>>>>>>>>>>> platform.js, I see
>>>>>>>>>>> the correct behavior. I would just use platform.js, but there's 
>>>>>>>>>>> some stuff
>>>>>>>>>>> in there I don't think I need..and I'm trying to get things down as 
>>>>>>>>>>> small
>>>>>>>>>>> as possible. Can someone point me to the build file for 
>>>>>>>>>>> platform.js? I'd
>>>>>>>>>>> like to see if I can figure out what the real difference is.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Thursday, January 16, 2014 12:13:59 PM UTC-5, Rob Eisenberg
>>>>>>>>>>> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>> I had a pretty nice custom element system build on the
>>>>>>>>>>>> pollyfills from Stable release 2013-11-07  When I updated to 0.1.2,
>>>>>>>>>>>> everything broke. I've been going throughout, fixing things bit by 
>>>>>>>>>>>> bit, but
>>>>>>>>>>>> now I'm to a point where I'm wondering if there's something wrong 
>>>>>>>>>>>> with
>>>>>>>>>>>> Polymer. It seems as if custom element binding are being evaluated 
>>>>>>>>>>>> before
>>>>>>>>>>>> the element is upgraded. I'm not sure about that, but I can't 
>>>>>>>>>>>> explain the
>>>>>>>>>>>> behavior I'm seeing any other way. Here's my custom element test 
>>>>>>>>>>>> code:
>>>>>>>>>>>>
>>>>>>>>>>>> var proto = Object.create(HTMLElement.prototype);
>>>>>>>>>>>>
>>>>>>>>>>>> proto.createdCallback = function () {
>>>>>>>>>>>>     this.customAttributes = {};
>>>>>>>>>>>>     console.log('created');
>>>>>>>>>>>> };
>>>>>>>>>>>>
>>>>>>>>>>>> proto.attachedCallback = function() {
>>>>>>>>>>>>     console.log('attached');
>>>>>>>>>>>> };
>>>>>>>>>>>>
>>>>>>>>>>>> proto.bind = function(name, value, oneTime) {
>>>>>>>>>>>>     console.log('bind', name, value, oneTime);
>>>>>>>>>>>> };
>>>>>>>>>>>>
>>>>>>>>>>>> proto.setAttribute = function(name, value) {
>>>>>>>>>>>>     console.log('setAttribute', name, value);
>>>>>>>>>>>> };
>>>>>>>>>>>>
>>>>>>>>>>>> proto.attributeChangedCallback = function(attrName, oldVal,
>>>>>>>>>>>> newVal) {
>>>>>>>>>>>>     console.log('attribute changed', attrName, oldVal, newVal);
>>>>>>>>>>>> };
>>>>>>>>>>>>
>>>>>>>>>>>> Object.defineProperty(proto, 'something', {
>>>>>>>>>>>>     get: function () {
>>>>>>>>>>>>         return this.customAttributes['something'];
>>>>>>>>>>>>     },
>>>>>>>>>>>>     set: function (val) {
>>>>>>>>>>>>         this.customAttributes['something'] = value;
>>>>>>>>>>>>         console.log('something change', value);
>>>>>>>>>>>>     }
>>>>>>>>>>>> });
>>>>>>>>>>>>
>>>>>>>>>>>> document.registerElement('dx-test', { prototype: proto });
>>>>>>>>>>>>
>>>>>>>>>>>> Then I use it inside of one of my templates like this:
>>>>>>>>>>>>
>>>>>>>>>>>> <dx-test something="{{someProperty}}"></dx-test>
>>>>>>>>>>>>
>>>>>>>>>>>> When I do this, the only callback that is fired is *createdCallback
>>>>>>>>>>>> * and by then it seems to have already parsed the bindings
>>>>>>>>>>>> out. This prevents me from having any custom *bind* logic and
>>>>>>>>>>>> even from reliably getting the value of my own property. If
>>>>>>>>>>>> *something* is not a primitive value, then attribute's value
>>>>>>>>>>>> is the result of *toString().*
>>>>>>>>>>>>
>>>>>>>>>>>> Am I doing something wrong here? Is this a bug?
>>>>>>>>>>>>
>>>>>>>>>>>  Follow Polymer on Google+: plus.google.com/
>>>>>>>>>>> 107187849809354688692
>>>>>>>>>>> ---
>>>>>>>>>>> You received this message because you are subscribed to the
>>>>>>>>>>> Google Groups "Polymer" group.
>>>>>>>>>>> To unsubscribe from this group and stop receiving emails from
>>>>>>>>>>> it, send an email to [email protected].
>>>>>>>>>>>  To view this discussion on the web visit
>>>>>>>>>>> https://groups.google.com/d/msgid/polymer-dev/70e68a23-
>>>>>>>>>>> a5aa-4b1a-8b7e-48de9604325a%40googlegroups.com.
>>>>>>>>>>>
>>>>>>>>>>> For more options, visit https://groups.google.com/groups/opt_out
>>>>>>>>>>> .
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Rob Eisenberg,
>>>>>>>>> President - Blue Spire
>>>>>>>>> www.durandaljs.com
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Rob Eisenberg,
>>>>>>>> President - Blue Spire
>>>>>>>> www.durandaljs.com
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Rob Eisenberg,
>>>>>> President - Blue Spire
>>>>>> www.durandaljs.com
>>>>>>
>>>>>
>>>>>
>>>>  Follow Polymer on Google+: plus.google.com/107187849809354688692
>>>> ---
>>>> You received this message because you are subscribed to a topic in the
>>>> Google Groups "Polymer" group.
>>>> To unsubscribe from this topic, visit
>>>> https://groups.google.com/d/topic/polymer-dev/puRMCV1-8nI/unsubscribe.
>>>> To unsubscribe from this group and all its topics, send an email to
>>>> [email protected].
>>>>
>>>> To view this discussion on the web visit
>>>> https://groups.google.com/d/msgid/polymer-dev/CAHbmOLZxfQq4yDfnPUtuXY%3DvL2h3N3ckKFfuqbw%2BPHkvb7O_5A%40mail.gmail.com
>>>> .
>>>>
>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>
>>>
>>>
>>>
>>> --
>>> Rob Eisenberg,
>>> President - Blue Spire
>>> www.durandaljs.com
>>>
>>> Follow Polymer on Google+: plus.google.com/107187849809354688692
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "Polymer" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/polymer-dev/CAMsr9Pm2FAycLjknWzuLLmEkMyveKhrz6YJnws0u-y7AdzH3AA%40mail.gmail.com
>>> .
>>>
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>
>>
>>
>
>
> --
> Rob Eisenberg,
> President - Blue Spire
> www.durandaljs.com
>

Follow Polymer on Google+: plus.google.com/107187849809354688692
--- 
You received this message because you are subscribed to the Google Groups 
"Polymer" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/polymer-dev/CAHbmOLb-E5zT7pWhnnR73UMpipE6EtyG2yqy0OwMOgXHzrtWhQ%40mail.gmail.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to