Skip to content

Commit e525c00

Browse files
committed
Merge branch 'master' into major
2 parents fd481f2 + 571a719 commit e525c00

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed

can-component.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -502,9 +502,19 @@ var Component = Construct.extend(
502502
} else if (componentTagData.viewModel) {
503503
// Component is being instantiated with a viewModel
504504
setupFn = getSetupFunctionForComponentVM(componentTagData.viewModel);
505+
506+
//!steal-remove-start
507+
if (process.env.NODE_ENV !== 'production') {
508+
setupFn = queues.runAsTask(setupFn, function(el, componentTagData) {
509+
return ["Constructing", el, "with viewModel",componentTagData.viewModel];
510+
});
511+
}
512+
//!steal-remove-end
505513
} else {
506514
setupFn = stacheBindings.behaviors.viewModel;
507515
}
516+
517+
508518
teardownBindings = setupFn(el, componentTagData, function(initialViewModelData) {
509519

510520
var ViewModel = component.constructor.ViewModel,

test/component-can-bind-test.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ var QUnit = require("steal-qunit");
55
var SimpleMap = require("can-simple-map");
66
var value = require("can-value");
77
var domMutateNode = require("can-dom-mutate/node/node");
8+
var queues = require("can-queues");
9+
var testHelpers = require("can-test-helpers");
810

911
QUnit.module("can-component integration with can-bind");
1012

@@ -71,3 +73,23 @@ QUnit.test("Using can-bind in connectedCallback works as documented", function(a
7173
done();
7274
});
7375
});
76+
77+
testHelpers.dev.devOnlyTest("logStack should include `new Component()` mutations", function(assert) {
78+
var ComponentConstructor = Component.extend({
79+
tag: "a-tag",
80+
view: '{{foo}}',
81+
ViewModel: {
82+
setup: function () {
83+
var expected = queues.stack().length > 0;
84+
assert.ok(expected, "At least one task on the stack");
85+
},
86+
foo: 'string'
87+
}
88+
});
89+
90+
new ComponentConstructor({
91+
viewModel : {
92+
foo: "bar"
93+
}
94+
});
95+
});

0 commit comments

Comments
 (0)