Skip to content

[tree-shaking] function with no side-effects & args included in output #2539

Description

@leeoniya
// main.js

import { extend } from './extend.js';

function Foo() {}
function Bar() {}
extend(Foo, Bar, {});
const baz = 5;
export default baz;
// extend.js

export function extend(parent, child, props) {
  child.__proto__ = parent;
  var proto = child.prototype = Object.create(parent.prototype);
  proto.constructor = child;
  for (var p in props)
    proto[p] = props[p];
}
// output

var baz = (function () {
  'use strict';

  function extend(parent, child, props) {
    child.__proto__ = parent;
    var proto = child.prototype = Object.create(parent.prototype);
    proto.constructor = child;
    for (var p in props)
      proto[p] = props[p];
  }

  function Foo() {}

  function Bar() {}

  extend(Foo, Bar, {});

  const baz = 5;

  return baz;

}());
// expected

var baz = (function () {
  'use strict';

  const baz = 5;

  return baz;
}());

Repro:

https://rollupjs.org/repl?version=0.66.6&shareable=JTdCJTIybW9kdWxlcyUyMiUzQSU1QiU3QiUyMm5hbWUlMjIlM0ElMjJtYWluLmpzJTIyJTJDJTIyY29kZSUyMiUzQSUyMmltcG9ydCUyMCU3QiUyMGV4dGVuZCUyMCU3RCUyMGZyb20lMjAnLiUyRmV4dGVuZC5qcyclM0IlNUNuJTVDbmZ1bmN0aW9uJTIwRm9vKCklMjAlN0IlN0QlNUNuJTVDbmZ1bmN0aW9uJTIwQmFyKCklMjAlN0IlN0QlNUNuJTVDbmV4dGVuZChGb28lMkMlMjBCYXIlMkMlMjAlN0IlN0QpJTNCJTVDbiU1Q25jb25zdCUyMGJheiUyMCUzRCUyMDUlM0IlNUNuJTVDbmV4cG9ydCUyMGRlZmF1bHQlMjBiYXolM0IlMjIlN0QlMkMlN0IlMjJuYW1lJTIyJTNBJTIyZXh0ZW5kLmpzJTIyJTJDJTIyY29kZSUyMiUzQSUyMmV4cG9ydCUyMGZ1bmN0aW9uJTIwZXh0ZW5kKHBhcmVudCUyQyUyMGNoaWxkJTJDJTIwcHJvcHMpJTIwJTdCJTVDbiU1Q3RjaGlsZC5fX3Byb3RvX18lMjAlM0QlMjBwYXJlbnQlM0IlNUNuJTVDdHZhciUyMHByb3RvJTIwJTNEJTIwY2hpbGQucHJvdG90eXBlJTIwJTNEJTIwT2JqZWN0LmNyZWF0ZShwYXJlbnQucHJvdG90eXBlKSUzQiU1Q24lNUN0cHJvdG8uY29uc3RydWN0b3IlMjAlM0QlMjBjaGlsZCUzQiU1Q24lNUN0Zm9yJTIwKHZhciUyMHAlMjBpbiUyMHByb3BzKSU1Q24lNUN0JTVDdHByb3RvJTVCcCU1RCUyMCUzRCUyMHByb3BzJTVCcCU1RCUzQiU1Q24lN0QlMjIlN0QlNUQlMkMlMjJvcHRpb25zJTIyJTNBJTdCJTIyZm9ybWF0JTIyJTNBJTIyaWlmZSUyMiUyQyUyMm5hbWUlMjIlM0ElMjJiYXolMjIlMkMlMjJhbWQlMjIlM0ElN0IlMjJpZCUyMiUzQSUyMiUyMiU3RCU3RCUyQyUyMmV4YW1wbGUlMjIlM0FudWxsJTdE

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions