Skip to content

Commit

Permalink
Merge pull request #16559 from emberjs/prop-normalization
Browse files Browse the repository at this point in the history
Fix property normalization
  • Loading branch information
rwjblue committed Apr 21, 2018
2 parents 0244f03 + b54c42e commit 0ddfb8d
Show file tree
Hide file tree
Showing 6 changed files with 165 additions and 90 deletions.
14 changes: 7 additions & 7 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -66,14 +66,14 @@
"resolve": "^1.6.0"
},
"devDependencies": {
"@glimmer/compiler": "0.33.7",
"@glimmer/compiler": "0.34.0",
"@glimmer/env": "^0.1.7",
"@glimmer/interfaces": "0.33.7",
"@glimmer/node": "0.33.7",
"@glimmer/opcode-compiler": "0.33.7",
"@glimmer/program": "0.33.7",
"@glimmer/reference": "0.33.7",
"@glimmer/runtime": "0.33.7",
"@glimmer/interfaces": "0.34.0",
"@glimmer/node": "0.34.0",
"@glimmer/opcode-compiler": "0.34.0",
"@glimmer/program": "0.34.0",
"@glimmer/reference": "0.34.0",
"@glimmer/runtime": "0.34.0",
"@types/rsvp": "^4.0.1",
"amd-name-resolver": "^1.2.0",
"auto-dist-tag": "^0.1.5",
Expand Down
7 changes: 4 additions & 3 deletions packages/ember-glimmer/lib/environment.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { warn } from '@ember/debug';
import { DEBUG } from '@glimmer/env';
import { Option } from '@glimmer/interfaces';
import { OpaqueIterable, VersionedReference } from '@glimmer/reference';
import {
ElementBuilder,
Expand Down Expand Up @@ -142,18 +143,18 @@ if (DEBUG) {
element,
attribute: string,
isTrusting: boolean,
_namespace?
namespace: Option<string>
) {
if (attribute === 'style' && !isTrusting) {
return StyleAttributeManager;
return new StyleAttributeManager({ element, name: attribute, namespace });
}

return GlimmerEnvironment.prototype.attributeFor.call(
this,
element,
attribute,
isTrusting,
_namespace
namespace
);
};
}
2 changes: 1 addition & 1 deletion packages/ember-glimmer/lib/utils/bindings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ export const AttributeBinding = {
'You cannot use class as an attributeBinding, use classNameBindings instead.',
microsyntax !== 'class'
);
return [microsyntax, microsyntax.toLowerCase(), true];
return [microsyntax, microsyntax, true];
} else {
let prop = microsyntax.substring(0, colonIndex);
let attribute = microsyntax.substring(colonIndex + 1);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -313,6 +313,42 @@ moduleFor(
});
}

['@test attributeBindings preserves case for mixed-case attributes']() {
let FooBarComponent = Component.extend({
tagName: 'svg',
attributeBindings: ['viewBox'],
});

this.registerComponent('foo-bar', {
ComponentClass: FooBarComponent,
template: '',
});

this.render('{{foo-bar viewBox=foo}}', {
foo: '0 0 100 100',
});

this.assert.equal(
this.firstChild.getAttribute('viewBox'),
'0 0 100 100',
'viewBox attribute'
);

this.assertStableRerender();

this.runTask(() => set(this.context, 'foo', null));

this.assert.ok(!this.firstChild.hasAttribute('viewBox'), 'viewBox attribute removed');

this.runTask(() => set(this.context, 'foo', '0 0 100 200'));

this.assert.equal(
this.firstChild.getAttribute('viewBox'),
'0 0 100 200',
'viewBox attribute'
);
}

['@test attributeBindings handles null/undefined']() {
let FooBarComponent = Component.extend({
attributeBindings: ['fizz', 'bar'],
Expand Down
38 changes: 38 additions & 0 deletions packages/ember-glimmer/tests/integration/event-dispatcher-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,44 @@ moduleFor(
assert.strictEqual(receivedEvent.target, this.$('#is-done')[0]);
}

['@test case insensitive events'](assert) {
let receivedEvent;

this.registerComponent('x-bar', {
ComponentClass: Component.extend({
clicked(event) {
receivedEvent = event;
},
}),
template: `<button id="is-done" onclick={{action clicked}}>my button</button>`,
});

this.render(`{{x-bar}}`);

this.runTask(() => this.$('#is-done').trigger('click'));
assert.ok(receivedEvent, 'change event was triggered');
assert.strictEqual(receivedEvent.target, this.$('#is-done')[0]);
}

['@test case sensitive events'](assert) {
let receivedEvent;

this.registerComponent('x-bar', {
ComponentClass: Component.extend({
clicked(event) {
receivedEvent = event;
},
}),
template: `<button id="is-done" onClick={{action clicked}}>my button</button>`,
});

this.render(`{{x-bar}}`);

this.runTask(() => this.$('#is-done').trigger('click'));
assert.ok(receivedEvent, 'change event was triggered');
assert.strictEqual(receivedEvent.target, this.$('#is-done')[0]);
}

['@test events bubble to parent view'](assert) {
let receivedEvent;

Expand Down
158 changes: 79 additions & 79 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2,105 +2,105 @@
# yarn lockfile v1


"@glimmer/compiler@0.33.7":
version "0.33.7"
resolved "https://registry.yarnpkg.com/@glimmer/compiler/-/compiler-0.33.7.tgz#160fd07cf607c2c6aa05826e95f5028b0418021e"
"@glimmer/compiler@0.34.0":
version "0.34.0"
resolved "https://registry.yarnpkg.com/@glimmer/compiler/-/compiler-0.34.0.tgz#4209ac96e322122f0caf085d97bf788c15ea1abb"
dependencies:
"@glimmer/interfaces" "^0.33.7"
"@glimmer/syntax" "^0.33.7"
"@glimmer/util" "^0.33.7"
"@glimmer/wire-format" "^0.33.7"
"@glimmer/interfaces" "^0.34.0"
"@glimmer/syntax" "^0.34.0"
"@glimmer/util" "^0.34.0"
"@glimmer/wire-format" "^0.34.0"

"@glimmer/encoder@^0.33.7":
version "0.33.7"
resolved "https://registry.yarnpkg.com/@glimmer/encoder/-/encoder-0.33.7.tgz#6fbb130a6159892ffe8696547513f6f74005af69"
"@glimmer/encoder@^0.34.0":
version "0.34.0"
resolved "https://registry.yarnpkg.com/@glimmer/encoder/-/encoder-0.34.0.tgz#60000b959ce466a46a2aeed2a937324ce467196c"

"@glimmer/env@^0.1.7":
version "0.1.7"
resolved "https://registry.yarnpkg.com/@glimmer/env/-/env-0.1.7.tgz#fd2d2b55a9029c6b37a6c935e8c8871ae70dfa07"

"@glimmer/interfaces@0.33.7", "@glimmer/interfaces@^0.33.7":
version "0.33.7"
resolved "https://registry.yarnpkg.com/@glimmer/interfaces/-/interfaces-0.33.7.tgz#0354a2a257e93709172fb9c03d43429e32915181"
"@glimmer/interfaces@0.34.0", "@glimmer/interfaces@^0.34.0":
version "0.34.0"
resolved "https://registry.yarnpkg.com/@glimmer/interfaces/-/interfaces-0.34.0.tgz#5cca261067c1f44dea84bcb5743bea3c938510a0"
dependencies:
"@glimmer/wire-format" "^0.33.7"
"@glimmer/wire-format" "^0.34.0"

"@glimmer/low-level@^0.33.7":
version "0.33.7"
resolved "https://registry.yarnpkg.com/@glimmer/low-level/-/low-level-0.33.7.tgz#4590e86c767a5642a5e18a7b6684e8115588f1fa"
"@glimmer/low-level@^0.34.0":
version "0.34.0"
resolved "https://registry.yarnpkg.com/@glimmer/low-level/-/low-level-0.34.0.tgz#b308238ea43808369af02a873ed93dd371e61903"

"@glimmer/node@0.33.7":
version "0.33.7"
resolved "https://registry.yarnpkg.com/@glimmer/node/-/node-0.33.7.tgz#5f704b7b1243e13ed4f274d974ecfd321d93f4fe"
"@glimmer/node@0.34.0":
version "0.34.0"
resolved "https://registry.yarnpkg.com/@glimmer/node/-/node-0.34.0.tgz#e7e82f39a8ffb5a58993729c2017bef93dd50584"
dependencies:
"@glimmer/interfaces" "^0.33.7"
"@glimmer/runtime" "^0.33.7"
"@glimmer/interfaces" "^0.34.0"
"@glimmer/runtime" "^0.34.0"
simple-dom "^0.3.0"

"@glimmer/opcode-compiler@0.33.7":
version "0.33.7"
resolved "https://registry.yarnpkg.com/@glimmer/opcode-compiler/-/opcode-compiler-0.33.7.tgz#f7de676df837fc4c62585765be0d4c552ff9c4bb"
dependencies:
"@glimmer/encoder" "^0.33.7"
"@glimmer/interfaces" "^0.33.7"
"@glimmer/program" "^0.33.7"
"@glimmer/reference" "^0.33.7"
"@glimmer/util" "^0.33.7"
"@glimmer/vm" "^0.33.7"
"@glimmer/wire-format" "^0.33.7"

"@glimmer/program@0.33.7", "@glimmer/program@^0.33.7":
version "0.33.7"
resolved "https://registry.yarnpkg.com/@glimmer/program/-/program-0.33.7.tgz#d15fd7bd5d4feda3cd08c5dbb51f2e53a0ec0e7a"
dependencies:
"@glimmer/encoder" "^0.33.7"
"@glimmer/interfaces" "^0.33.7"
"@glimmer/util" "^0.33.7"

"@glimmer/reference@0.33.7", "@glimmer/reference@^0.33.7":
version "0.33.7"
resolved "https://registry.yarnpkg.com/@glimmer/reference/-/reference-0.33.7.tgz#733b0165291868dad89a289daffd7a7d1d840673"
dependencies:
"@glimmer/util" "^0.33.7"

"@glimmer/runtime@0.33.7", "@glimmer/runtime@^0.33.7":
version "0.33.7"
resolved "https://registry.yarnpkg.com/@glimmer/runtime/-/runtime-0.33.7.tgz#2a136d34c567a356d71299b6baadad456ee9af60"
dependencies:
"@glimmer/interfaces" "^0.33.7"
"@glimmer/low-level" "^0.33.7"
"@glimmer/program" "^0.33.7"
"@glimmer/reference" "^0.33.7"
"@glimmer/util" "^0.33.7"
"@glimmer/vm" "^0.33.7"
"@glimmer/wire-format" "^0.33.7"

"@glimmer/syntax@^0.33.7":
version "0.33.7"
resolved "https://registry.yarnpkg.com/@glimmer/syntax/-/syntax-0.33.7.tgz#0775cc68bd873066b89c7c6c599928b74c672c97"
dependencies:
"@glimmer/interfaces" "^0.33.7"
"@glimmer/util" "^0.33.7"
"@glimmer/opcode-compiler@0.34.0":
version "0.34.0"
resolved "https://registry.yarnpkg.com/@glimmer/opcode-compiler/-/opcode-compiler-0.34.0.tgz#ba48ae7be3e2fb79202a3e2d6981edcc70506ab2"
dependencies:
"@glimmer/encoder" "^0.34.0"
"@glimmer/interfaces" "^0.34.0"
"@glimmer/program" "^0.34.0"
"@glimmer/reference" "^0.34.0"
"@glimmer/util" "^0.34.0"
"@glimmer/vm" "^0.34.0"
"@glimmer/wire-format" "^0.34.0"

"@glimmer/program@0.34.0", "@glimmer/program@^0.34.0":
version "0.34.0"
resolved "https://registry.yarnpkg.com/@glimmer/program/-/program-0.34.0.tgz#1cddc98f5bace164a138b1e99829bda503ba6132"
dependencies:
"@glimmer/encoder" "^0.34.0"
"@glimmer/interfaces" "^0.34.0"
"@glimmer/util" "^0.34.0"

"@glimmer/reference@0.34.0", "@glimmer/reference@^0.34.0":
version "0.34.0"
resolved "https://registry.yarnpkg.com/@glimmer/reference/-/reference-0.34.0.tgz#e735cceabec2592e58448d9f933d6e6610617656"
dependencies:
"@glimmer/util" "^0.34.0"

"@glimmer/runtime@0.34.0", "@glimmer/runtime@^0.34.0":
version "0.34.0"
resolved "https://registry.yarnpkg.com/@glimmer/runtime/-/runtime-0.34.0.tgz#b83eae59a93adce18624ea94415ae68496266619"
dependencies:
"@glimmer/interfaces" "^0.34.0"
"@glimmer/low-level" "^0.34.0"
"@glimmer/program" "^0.34.0"
"@glimmer/reference" "^0.34.0"
"@glimmer/util" "^0.34.0"
"@glimmer/vm" "^0.34.0"
"@glimmer/wire-format" "^0.34.0"

"@glimmer/syntax@^0.34.0":
version "0.34.0"
resolved "https://registry.yarnpkg.com/@glimmer/syntax/-/syntax-0.34.0.tgz#3a19dd355b528b58e572d67cc9444d1371ca905c"
dependencies:
"@glimmer/interfaces" "^0.34.0"
"@glimmer/util" "^0.34.0"
handlebars "^4.0.6"
simple-html-tokenizer "^0.5.0"

"@glimmer/util@^0.33.7":
version "0.33.7"
resolved "https://registry.yarnpkg.com/@glimmer/util/-/util-0.33.7.tgz#6717c669f9aeb5e248bfffbe7017f51d8a7841d4"
"@glimmer/util@^0.34.0":
version "0.34.0"
resolved "https://registry.yarnpkg.com/@glimmer/util/-/util-0.34.0.tgz#104b87baecd22b4ff3758b9e944961a889b9be5b"

"@glimmer/vm@^0.33.7":
version "0.33.7"
resolved "https://registry.yarnpkg.com/@glimmer/vm/-/vm-0.33.7.tgz#8dd28d1417f2dd2ace12482b4e4c10e8102be4a3"
"@glimmer/vm@^0.34.0":
version "0.34.0"
resolved "https://registry.yarnpkg.com/@glimmer/vm/-/vm-0.34.0.tgz#28fe413b5ea4e693a025e898a4ccf8483c187496"
dependencies:
"@glimmer/interfaces" "^0.33.7"
"@glimmer/program" "^0.33.7"
"@glimmer/util" "^0.33.7"
"@glimmer/interfaces" "^0.34.0"
"@glimmer/program" "^0.34.0"
"@glimmer/util" "^0.34.0"

"@glimmer/wire-format@^0.33.7":
version "0.33.7"
resolved "https://registry.yarnpkg.com/@glimmer/wire-format/-/wire-format-0.33.7.tgz#26a75294f6b1e403d4cf57c81f167708fc7f104a"
"@glimmer/wire-format@^0.34.0":
version "0.34.0"
resolved "https://registry.yarnpkg.com/@glimmer/wire-format/-/wire-format-0.34.0.tgz#15a0beeff677fae54544f53158d15bc878006ce7"
dependencies:
"@glimmer/util" "^0.33.7"
"@glimmer/util" "^0.34.0"

"@types/acorn@^4.0.3":
version "4.0.3"
Expand Down

0 comments on commit 0ddfb8d

Please sign in to comment.