diff --git a/packages/ember-metal/lib/mixin.js b/packages/ember-metal/lib/mixin.js index 1524a1bda04..3af774d6b13 100644 --- a/packages/ember-metal/lib/mixin.js +++ b/packages/ember-metal/lib/mixin.js @@ -48,8 +48,12 @@ function superFunction(){ var func = this.__nextSuper; var ret; if (func) { + var args = new Array(arguments.length); + for (var i = 0, l = args.length; i < l; i++) { + args[i] = arguments[i]; + } this.__nextSuper = null; - ret = apply(this, func, arguments); + ret = apply(this, func, args); this.__nextSuper = func; } return ret; diff --git a/packages/ember-metal/lib/utils.js b/packages/ember-metal/lib/utils.js index e341cbce168..3154f375cfc 100644 --- a/packages/ember-metal/lib/utils.js +++ b/packages/ember-metal/lib/utils.js @@ -394,9 +394,13 @@ export function metaPath(obj, path, writable) { export function wrap(func, superFunc) { function superWrapper() { var ret; - var sup = this && this.__nextSuper; + var sup = this && this.__nextSuper; + var args = new Array(arguments.length); + for (var i = 0, l = args.length; i < l; i++) { + args[i] = arguments[i]; + } if(this) { this.__nextSuper = superFunc; } - ret = apply(this, func, arguments); + ret = apply(this, func, args); if(this) { this.__nextSuper = sup; } return ret; }