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

Uncaught RangeError: Maximum call stack size exceeded CurlyComponentManager.manager.didCreateElement #110

Open
dshrestha opened this issue Mar 30, 2020 · 6 comments

Comments

@dshrestha
Copy link

Seeing following exception in my acceptance tests:

Uncaught RangeError: Maximum call stack size exceeded
    at CurlyComponentManager.manager.didCreateElement (runtime-polyfill.js:402)
    at CurlyComponentManager.manager.didCreateElement (runtime-polyfill.js:403)
    at CurlyComponentManager.manager.didCreateElement (runtime-polyfill.js:403)
    at CurlyComponentManager.manager.didCreateElement (runtime-polyfill.js:403)
    at CurlyComponentManager.manager.didCreateElement (runtime-polyfill.js:403)
    at CurlyComponentManager.manager.didCreateElement (runtime-polyfill.js:403)
    at CurlyComponentManager.manager.didCreateElement (runtime-polyfill.js:403)
    at CurlyComponentManager.manager.didCreateElement (runtime-polyfill.js:403)
    at CurlyComponentManager.manager.didCreateElement (runtime-polyfill.js:403)
    at CurlyComponentManager.manager.didCreateElement (runtime-polyfill.js:403)


manager.didCreateElement | @ | runtime-polyfill.js:402
-- | -- | --
  | manager.didCreateElement | @ | runtime-polyfill.js:403
  | manager.didCreateElement | @ | runtime-polyfill.js:403
  | manager.didCreateElement | @ | runtime-polyfill.js:403
  | manager.didCreateElement | @ | runtime-polyfill.js:403
  | manager.didCreateElement | @ | runtime-polyfill.js:403
  | manager.didCreateElement | @ | runtime-polyfill.js:403
  | manager.didCreateElement | @ | runtime-polyfill.js:403
  | manager.didCreateElement | @ | runtime-polyfill.js:403
  | manager.didCreateElement | @ | runtime-polyfill.js:403
  | manager.didCreateElement | @ | runtime-polyfill.js:403
  | manager.didCreateElement | @ | runtime-polyfill.js:403
  | manager.didCreateElement | @ | runtime-polyfill.js:403
  | manager.didCreateElement | @ | runtime-polyfill.js:403
  | manager.didCreateElement | @ | runtime-polyfill.js:403
  | manager.didCreateElement | @ | runtime-polyfill.js:403
  | manager.didCreateElement | @ | runtime-polyfill.js:403
  | manager.didCreateElement | @ | runtime-polyfill.js:403
  | manager.didCreateElement | @ | runtime-polyfill.js:403
  | manager.didCreateElement | @ | runtime-polyfill.js:403
  | manager.didCreateElement | @ | runtime-polyfill.js:403
  | manager.didCreateElement | @ | runtime-polyfill.js:403
  | manager.didCreateElement | @ | runtime-polyfill.js:403
  | manager.didCreateElement | @ | runtime-polyfill.js:403
  | manager.didCreateElement | @ | runtime-polyfill.js:403
  | manager.didCreateElement | @ | runtime-polyfill.js:403
  | manager.didCreateElement | @ | runtime-polyfill.js:403
  | manager.didCreateElement | @ | runtime-polyfill.js:403
  | manager.didCreateElement | @ | runtime-polyfill.js:403
  | manager.didCreateElement | @ | runtime-polyfill.js:403
  | setTimeout (async) |   |  
  | Backburner.platform.next | @ | backburner.js:412
  | _ensureInstance | @ | backburner.js:951
  | schedule | @ | backburner.js:547


The issue seems to occur after the model(questions) is resolved in a route whose template looks like this:

    {{#each questions as |question|}}
        {{component question.componentName question=question}}
    {{/each}}

the dynamic component in turn uses the angel bracket components for "Input".
However, if I rerun just the broken test, it passes.

Similar issue was reported and closed here : #53

ember-angle-bracket-invocation-polyfill: 2.0.2
ember-source: 2.18.2
jquery: 3.4.1

@Mifrill
Copy link

Mifrill commented Jul 2, 2020

any updates on this? I've got the same after adding of ember-modifier-manager-polyfill:

ember-source: 2.14.1
ember-angle-bracket-invocation-polyfill: 2.0.2
jquery: 3.5.1
ember-modifier-manager-polyfill: 1.2.0

@rwjblue
Copy link
Member

rwjblue commented Jul 2, 2020

No, I don't think there has been any progress here. I think I need a reproduction in order to dig in here...

@Mifrill
Copy link

Mifrill commented Nov 17, 2020

Hello, @dshrestha did you find the solution? I will appreciate if you can share the possible reason or the fix with me

@dshrestha
Copy link
Author

Hi @Mifrill sorry I didn't make any progress on this since we chose to upgrade to ember 3 instead.

@Mifrill
Copy link

Mifrill commented Nov 18, 2020

@dshrestha thanks for the response, so you got ember 3, congratz! we are only on this road!

@Mifrill
Copy link

Mifrill commented Apr 7, 2021

it was solved when we've rewritten all tests in modern syntax.

legacy syntax:

import moduleForAcceptance from 'smhw-frontend/tests/helpers/module-for-acceptance';

moduleForAcceptance('Acceptance | Test', {
  beforeEach() {
    // setup
  }
});

test('my test', async function(assert) {
  ...
});

modern syntax:

import { module, test } from 'qunit';
import { setupApplicationTest } from 'ember-qunit';

module('Acceptance | Test', function(hooks) {
  setupApplicationTest(hooks);

  hooks.beforeEach(function() {
    // setup
  });

  test('my test', async function(assert) {
    ...
  });

the tests codebase was in-migration state: some tests were in legacy but some were with modern syntax.

This codemod was really helpful for the migration process: https://github.com/ember-codemods/ember-qunit-codemod

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

3 participants