Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error with glimmer2 enabled with ember canary #255

Closed
josemarluedke opened this issue Aug 30, 2016 · 6 comments
Closed

Error with glimmer2 enabled with ember canary #255

josemarluedke opened this issue Aug 30, 2016 · 6 comments

Comments

@josemarluedke
Copy link
Contributor

josemarluedke commented Aug 30, 2016

Per request from @rwjblue.

I tried to use ember-cli-fastboot (beta 8) with the latest ember canary with glimmer enabled by default and we get an error from this line.

My test app is at: https://github.com/josemarluedke/glimmer2-fastboot-try

The logs are:

2016-08-30T23:34:41.270Z 500 Unknown Error: TypeError: Cannot read property 'prototype' of undefined
    at Object.initialize (/Users/josemarluedke/Projects/OSS/josemarluedke/dist/fastboot/josemarluedke.js:189:31)
    at /Users/josemarluedke/Projects/OSS/josemarluedke/dist/fastboot/vendor.js:14752:23
    at /Users/josemarluedke/Projects/OSS/josemarluedke/dist/fastboot/vendor.js:14781:16
    at Object.visit [as default] (/Users/josemarluedke/Projects/OSS/josemarluedke/dist/fastboot/vendor.js:67273:5)
    at DAG.topsort (/Users/josemarluedke/Projects/OSS/josemarluedke/dist/fastboot/vendor.js:12786:23)
    at _emberRuntimeSystemNamespace.default.extend._runInitializer (/Users/josemarluedke/Projects/OSS/josemarluedke/dist/fastboot/vendor.js:14780:13)
    at _emberRuntimeSystemNamespace.default.extend.runInitializers (/Users/josemarluedke/Projects/OSS/josemarluedke/dist/fastboot/vendor.js:14741:12)
    at _emberApplicationSystemEngine.default.extend._bootSync (/Users/josemarluedke/Projects/OSS/josemarluedke/dist/fastboot/vendor.js:13918:14)
    at _emberApplicationSystemEngine.default.extend.boot (/Users/josemarluedke/Projects/OSS/josemarluedke/dist/fastboot/vendor.js:13885:14)
    at EmberApp.buildAppInstance (/Users/josemarluedke/Projects/OSS/josemarluedke/node_modules/ember-cli-fastboot/node_modules/fastboot-express-middleware/node_modules/fastboot/src/ember-app.js:173:21)
    at EmberApp.visit (/Users/josemarluedke/Projects/OSS/josemarluedke/node_modules/ember-cli-fastboot/node_modules/fastboot-express-middleware/node_modules/fastboot/src/ember-app.js:213:17)
    at FastBoot.visit (/Users/josemarluedke/Projects/OSS/josemarluedke/node_modules/ember-cli-fastboot/node_modules/fastboot-express-middleware/node_modules/fastboot/src/index.js:70:22)
    at /Users/josemarluedke/Projects/OSS/josemarluedke/node_modules/ember-cli-fastboot/node_modules/fastboot-express-middleware/index.js:32:14
    at Layer.handle [as handle_request] (/Users/josemarluedke/Projects/OSS/josemarluedke/node_modules/ember-cli-fastboot/node_modules/express/lib/router/layer.js:95:5)
    at next (/Users/josemarluedke/Projects/OSS/josemarluedke/node_modules/ember-cli-fastboot/node_modules/express/lib/router/route.js:131:13)
    at Route.dispatch (/Users/josemarluedke/Projects/OSS/josemarluedke/node_modules/ember-cli-fastboot/node_modules/express/lib/router/route.js:112:3)
    at Layer.handle [as handle_request] (/Users/josemarluedke/Projects/OSS/josemarluedke/node_modules/ember-cli-fastboot/node_modules/express/lib/router/layer.js:95:5)
    at /Users/josemarluedke/Projects/OSS/josemarluedke/node_modules/ember-cli-fastboot/node_modules/express/lib/router/index.js:277:22
    at Function.process_params (/Users/josemarluedke/Projects/OSS/josemarluedke/node_modules/ember-cli-fastboot/node_modules/express/lib/router/index.js:330:12)
    at next (/Users/josemarluedke/Projects/OSS/josemarluedke/node_modules/ember-cli-fastboot/node_modules/express/lib/router/index.js:271:10)
    at expressInit (/Users/josemarluedke/Projects/OSS/josemarluedke/node_modules/ember-cli-fastboot/node_modules/express/lib/middleware/init.js:33:5)
    at Layer.handle [as handle_request] (/Users/josemarluedke/Projects/OSS/josemarluedke/node_modules/ember-cli-fastboot/node_modules/express/lib/router/layer.js:95:5)
    at trim_prefix (/Users/josemarluedke/Projects/OSS/josemarluedke/node_modules/ember-cli-fastboot/node_modules/express/lib/router/index.js:312:13)
    at /Users/josemarluedke/Projects/OSS/josemarluedke/node_modules/ember-cli-fastboot/node_modules/express/lib/router/index.js:280:7
    at Function.process_params (/Users/josemarluedke/Projects/OSS/josemarluedke/node_modules/ember-cli-fastboot/node_modules/express/lib/router/index.js:330:12)
    at next (/Users/josemarluedke/Projects/OSS/josemarluedke/node_modules/ember-cli-fastboot/node_modules/express/lib/router/index.js:271:10)
    at query (/Users/josemarluedke/Projects/OSS/josemarluedke/node_modules/ember-cli-fastboot/node_modules/express/lib/middleware/query.js:44:5)
    at Layer.handle [as handle_request] (/Users/josemarluedke/Projects/OSS/josemarluedke/node_modules/ember-cli-fastboot/node_modules/express/lib/router/layer.js:95:5)
    at trim_prefix (/Users/josemarluedke/Projects/OSS/josemarluedke/node_modules/ember-cli-fastboot/node_modules/express/lib/router/index.js:312:13)
    at /Users/josemarluedke/Projects/OSS/josemarluedke/node_modules/ember-cli-fastboot/node_modules/express/lib/router/index.js:280:7
    at Function.process_params (/Users/josemarluedke/Projects/OSS/josemarluedke/node_modules/ember-cli-fastboot/node_modules/express/lib/router/index.js:330:12)
    at next (/Users/josemarluedke/Projects/OSS/josemarluedke/node_modules/ember-cli-fastboot/node_modules/express/lib/router/index.js:271:10)
    at Function.handle (/Users/josemarluedke/Projects/OSS/josemarluedke/node_modules/ember-cli-fastboot/node_modules/express/lib/router/index.js:176:3)
    at EventEmitter.handle (/Users/josemarluedke/Projects/OSS/josemarluedke/node_modules/ember-cli-fastboot/node_modules/express/lib/application.js:173:10)
    at Server.app (/Users/josemarluedke/Projects/OSS/josemarluedke/node_modules/ember-cli-fastboot/node_modules/express/lib/express.js:38:9)
    at emitTwo (events.js:106:13)
    at Server.emit (events.js:191:7)
    at HTTPParser.parserOnIncoming [as onIncoming] (_http_server.js:543:12)
    at HTTPParser.parserOnHeadersComplete (_http_common.js:105:23)
@rwjblue
Copy link
Member

rwjblue commented Aug 30, 2016

Thanks for testing this out! I believe we need to detect if these monkey patches are needed and simply do nothing if they are not.

I do not think the DOMHelper monkey patch is needed for 2.7+ of Ember (though @tomdale and/or @ronco may need to confirm the exact version).

@tomdale
Copy link
Contributor

tomdale commented Sep 5, 2016

@rwjblue Where does the behavior that is being monkeypatched by FastBoot live now?

@bantic
Copy link
Contributor

bantic commented Sep 6, 2016

The two monkeypatches are protocolForUrl and parseHTML.

prototcolForUrl is now in ember-glimmer/lib/protocol-for-url.js, and appears to be Fastboot/Node-compatible.

I'm not sure where parseHTML is called, but I don't see a replacement for it in the ember.js codebase.

cc @tomdale

@tomdale
Copy link
Contributor

tomdale commented Sep 6, 2016

@bantic parseHTML is used when you have unescaped dynamic values aka {{{triple-curlies}}}. In the browser we parse the HTML and insert the resulting fragment into the DOM as-is. In FastBoot, we use a non-standard SimpleDOM API for adding "raw" HTML that just gets serialized out directly without an intermediate parsing step.

@chancancode @chadhietala Is the plan of record to maintain a Node-compatible DOMHelper in Glimmer? If so, I think we can safely remove this monkeypatch for newer versions.

@chancancode
Copy link
Contributor

@tomdale yes

@rwjblue
Copy link
Member

rwjblue commented Sep 6, 2016

@chancancode @chadhietala Is the plan of record to maintain a Node-compatible DOMHelper in Glimmer? If so, I think we can safely remove this monkeypatch for newer versions.

Yes, that is what I was trying to say in #255 (comment):

I believe we need to detect if these monkey patches are needed and simply do nothing if they are not.

bantic added a commit to bantic/ember-cli-fastboot that referenced this issue Sep 8, 2016
And ember-cli-addon-tests uses ember canary, so running addon tests with
fastboot is failing for me.

These DOMHelper extensions will likely be fixed later, see:
ember-fastboot#255
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants