Skip to content

Commit affad1d

Browse files
author
pemrouz
committed
should pass root as parameter
1 parent 6bbdfeb commit affad1d

File tree

3 files changed

+23
-4
lines changed

3 files changed

+23
-4
lines changed

dist/index.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,13 +150,14 @@ var render = function render(ripple) {
150150
var name = (0, _lo2.default)(el.tagName),
151151
deps = (0, _attr2.default)(el, 'data'),
152152
fn = body(ripple)(name),
153-
data = bodies(ripple)(deps);
153+
data = bodies(ripple)(deps),
154+
root = el.shadowRoot || el;
154155

155156
if (!fn) return el;
156157
if (deps && !data) return el;
157158

158159
try {
159-
fn.call(el.shadowRoot || el, defaults(el, data), index(el));
160+
fn.call(root, defaults(el, data), index(el), root);
160161
} catch (e) {
161162
err(e, e.stack);
162163
}

src/index.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,12 +84,13 @@ const render = ripple => el => {
8484
, deps = attr(el, 'data')
8585
, fn = body(ripple)(name)
8686
, data = bodies(ripple)(deps)
87-
87+
, root = el.shadowRoot || el
88+
8889
if (!fn) return el
8990
if (deps && !data) return el
9091

9192
try {
92-
fn.call(el.shadowRoot || el, defaults(el, data), index(el))
93+
fn.call(root, defaults(el, data), index(el), root)
9394
} catch (e) {
9495
err(e, e.stack)
9596
}

test.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ var expect = require('chai').expect
55
, once = require('utilise/once')
66
, push = require('utilise/push')
77
, key = require('utilise/key')
8+
, lo = require('utilise/lo')
89
, components = require('./').default
910
, core = require('rijs.core').default
1011
, data = require('rijs.data').default
@@ -456,4 +457,20 @@ describe('Custom Elements', function(){
456457
})
457458
})
458459

460+
it('should pass root as parameter', function(done){
461+
var elA = once(container)('component-29', 1).node()
462+
, elB = once(container)('component-30', 1).node()
463+
, ripple = components(fn(data(core())))
464+
, result1, result2
465+
466+
Object.defineProperty(elB, 'shadowRoot', { value: elA })
467+
ripple('component-29', function(d, i, el){ result1 = el })
468+
ripple('component-30', function(d, i, el){ result2 = el })
469+
470+
time(40, function(){
471+
expect(lo(result1.nodeName)).to.be.eql('component-29')
472+
expect(lo(result2.nodeName)).to.be.eql('component-29')
473+
done()
474+
})
475+
})
459476
})

0 commit comments

Comments
 (0)