Skip to content

Advanced compilation breaks mixins with custom methods #29

@loganlinn

Description

@loganlinn

Reported here: https://groups.google.com/forum/#!topic/clojurescript/YVPnwIWaUVU

If a mixin has non-lifecycle methods (like the set-interval example), advanced compilation breaks invocations of those methods. Was able to reproduce on the mixin example with these changes.

Call-site of undefined is not a function:

return $output_schema13868$$1$$.$owner$.$set_interval$(function() {

Mixin is defined here: (note that it's getting inlined)

$obj__7119__auto__$$inline_244$$.mixins = [{set_interval:function($f13846$$, $t13847$$) {
  return function() {
    return function($f13846$$, $t13847$$, $t$$16$$) {
      return $f13846$$.$intervals$.push(setInterval($t13847$$, $t$$16$$));
    };
  }(this).call(null, this, $f13846$$, $t13847$$);
}, componentWillUnmount:function() {
  return function() {
    return function($owner$$30$$) {
      return $owner$$30$$.$intervals$.map(clearInterval);
    };
  }(this).call(null, this);
}, componentWillMount:function() {
  return function() {
    return function($owner$$31$$) {
      return $owner$$31$$.$intervals$ = [];
    };
  }(this).call(null, this);
}}];

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions