Skip to content

Commit a0e2139

Browse files
authored
Merge pull request #360 from canjs/logStack-newComponent-mutation
logStack include component instantiation mutations
2 parents ad8428b + 89aacb0 commit a0e2139

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
@@ -492,9 +492,19 @@ var Component = Construct.extend(
492492
} else if (componentTagData.viewModel) {
493493
// Component is being instantiated with a viewModel
494494
setupFn = getSetupFunctionForComponentVM(componentTagData.viewModel);
495+
496+
//!steal-remove-start
497+
if (process.env.NODE_ENV !== 'production') {
498+
setupFn = queues.runAsTask(setupFn, function(el, componentTagData) {
499+
return ["Constructing", el, "with viewModel",componentTagData.viewModel];
500+
});
501+
}
502+
//!steal-remove-end
495503
} else {
496504
setupFn = stacheBindings.behaviors.viewModel;
497505
}
506+
507+
498508
teardownBindings = setupFn(el, componentTagData, function(initialViewModelData) {
499509

500510
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
@@ -4,6 +4,8 @@ var helpers = require("./helpers");
44
var QUnit = require("steal-qunit");
55
var SimpleMap = require("can-simple-map");
66
var value = require("can-value");
7+
var queues = require("can-queues");
8+
var testHelpers = require("can-test-helpers");
79

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

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

0 commit comments

Comments
 (0)