From 134e9b6f9dd14858ac21c3d63e86ea843b306bcb Mon Sep 17 00:00:00 2001 From: Rich-Harris Date: Sun, 16 Apr 2017 14:21:36 -0400 Subject: [PATCH] ensure binding event handlers precede normal ones (fixes #486) --- .../dom/visitors/Element/Element.js | 4 ++-- .../binding-input-with-event/_config.js | 20 +++++++++++++++++++ .../binding-input-with-event/main.html | 1 + 3 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 test/runtime/samples/binding-input-with-event/_config.js create mode 100644 test/runtime/samples/binding-input-with-event/main.html diff --git a/src/generators/dom/visitors/Element/Element.js b/src/generators/dom/visitors/Element/Element.js index 20d4404638..8fce4734eb 100644 --- a/src/generators/dom/visitors/Element/Element.js +++ b/src/generators/dom/visitors/Element/Element.js @@ -13,8 +13,8 @@ const meta = { const order = { Attribute: 1, - EventHandler: 2, - Binding: 3, + Binding: 2, + EventHandler: 3, Ref: 4 }; diff --git a/test/runtime/samples/binding-input-with-event/_config.js b/test/runtime/samples/binding-input-with-event/_config.js new file mode 100644 index 0000000000..c09f09439b --- /dev/null +++ b/test/runtime/samples/binding-input-with-event/_config.js @@ -0,0 +1,20 @@ +export default { + data: { + a: 42 + }, + + test ( assert, component, target, window ) { + const input = target.querySelector( 'input' ); + assert.equal( input.value, '42' ); + + const event = new window.Event( 'input' ); + + input.value = 43; + input.dispatchEvent( event ); + + assert.equal( input.value, '43' ); + assert.equal( component.get( 'a' ), 43 ); + + component.destroy(); + } +}; diff --git a/test/runtime/samples/binding-input-with-event/main.html b/test/runtime/samples/binding-input-with-event/main.html new file mode 100644 index 0000000000..8227cfd6e0 --- /dev/null +++ b/test/runtime/samples/binding-input-with-event/main.html @@ -0,0 +1 @@ + \ No newline at end of file