Skip to content

Commit ced558a

Browse files
ENGCOM-7447: Fix handling of mixins for modules with no dependencies defined #27690
- Merge Pull Request #27690 from krzksz/magento2:hotfix-mixins - Merged commits: 1. 97f0a1f 2. 16444d0
2 parents f824b9e + 16444d0 commit ced558a

File tree

2 files changed

+31
-2
lines changed

2 files changed

+31
-2
lines changed

dev/tests/js/jasmine/tests/lib/mage/requirejs/mixins.test.js

+26
Original file line numberDiff line numberDiff line change
@@ -183,5 +183,31 @@ define(['rjsResolver', 'mixins'], function (resolver, mixins) {
183183

184184
require([name], function () {});
185185
});
186+
187+
it('applies mixins for modules that have no dependencies', function (done) {
188+
var name = 'tests/assets/mixins/mixins-applied-no-dependencies',
189+
mixinName = 'tests/assets/mixins/mixins-applied-no-dependencies-ext';
190+
191+
mixins.hasMixins.and.returnValue(true);
192+
mixins.getMixins.and.returnValue([mixinName]);
193+
194+
define(name, {
195+
value: 'original'
196+
});
197+
198+
define(mixinName, [], function () {
199+
return function (module) {
200+
module.value = 'changed';
201+
202+
return module;
203+
};
204+
});
205+
206+
require([name], function (module) {
207+
expect(module.value).toBe('changed');
208+
209+
done();
210+
});
211+
});
186212
});
187213
});

lib/web/mage/requirejs/mixins.js

+5-2
Original file line numberDiff line numberDiff line change
@@ -232,9 +232,12 @@ require([
232232
* from it every time require call happens.
233233
*/
234234
defContext.defQueue.shift = function () {
235-
var queueItem = Array.prototype.shift.call(this);
235+
var queueItem = Array.prototype.shift.call(this),
236+
lastDeps = queueItem && queueItem[1];
236237

237-
queueItem[1] = processNames(queueItem[1], defContext);
238+
if (Array.isArray(lastDeps)) {
239+
queueItem[1] = processNames(queueItem[1], defContext);
240+
}
238241

239242
return queueItem;
240243
};

0 commit comments

Comments
 (0)