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.
