Skip to content

Commit

Permalink
Merge pull request #122 from uxebu/displaylist-add
Browse files Browse the repository at this point in the history
Signature changes for `DisplayList#add()`
  • Loading branch information
padolsey committed Oct 19, 2012
2 parents c1c55a5 + ba6f837 commit c1b36de
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 8 deletions.
10 changes: 3 additions & 7 deletions src/runner/display_list.js
Expand Up @@ -66,8 +66,8 @@ define([

var children = this.children;
var numExistingChildren = children.length;
insertAt = arguments.length > 1 ?
min(insertAt >>> 0, numExistingChildren) : numExistingChildren;
insertAt = insertAt === void 0 ?
numExistingChildren : min(insertAt >>> 0, numExistingChildren);

if (isChildArray) {
children.splice.apply(children, [insertAt, 0].concat(child));
Expand Down Expand Up @@ -198,11 +198,7 @@ define([
* @return {this}
*/
addChild: function(child, index) {
if (arguments.length === 1) {
this.displayList.add(child);
} else {
this.displayList.add(child, index);
}
this.displayList.add(child, index);
return this;
},
/**
Expand Down
2 changes: 1 addition & 1 deletion test/common/displaylist-owner.js
Expand Up @@ -49,7 +49,7 @@ define([
it('forwards a single argument to this.displayList.add', function() {
var child = mock.createDisplayObject();
owner.addChild(child);
expect(displayList.add).toHaveBeenCalledWith(child);
expect(displayList.add).toHaveBeenCalledWith(child, void 0);
});

it('forwards both arguments to this.displayList.add', function() {
Expand Down
13 changes: 13 additions & 0 deletions test/display_list-spec.js
Expand Up @@ -287,6 +287,19 @@ define([
expect(newChild.next).toBe(existingChild);
});

it('should treat an undefined (but given) index parameter as if only one argument was passed and append the child', function() {
var displayList = createDisplayList();
displayList.add([
createArbitraryDisplayObject(),
createArbitraryDisplayObject(),
createArbitraryDisplayObject()]
);

var newChild = createArbitraryDisplayObject();
displayList.add(newChild, void 0);
expect(displayList.children.indexOf(newChild)).toBe(3);
});

it('should avoid adding the owner of a display list to the display list', function() {
var owner = createArbitraryDisplayObject();
var displayList = createDisplayList(owner);
Expand Down

0 comments on commit c1b36de

Please sign in to comment.