diff --git a/package.json b/package.json index cc05ff66278..0f3f175b7f6 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ "@babel/plugin-transform-block-scoping": "^7.8.3", "@babel/plugin-transform-object-assign": "^7.8.3", "@ember/edition-utils": "^1.2.0", - "@glimmer/vm-babel-plugins": "0.77.5", + "@glimmer/vm-babel-plugins": "0.78.2", "babel-plugin-debug-macros": "^0.3.3", "babel-plugin-filter-imports": "^4.0.0", "broccoli-concat": "^4.2.4", @@ -75,19 +75,19 @@ }, "devDependencies": { "@babel/preset-env": "^7.9.5", - "@glimmer/compiler": "0.77.5", + "@glimmer/compiler": "0.78.2", "@glimmer/env": "^0.1.7", - "@glimmer/global-context": "0.77.5", - "@glimmer/interfaces": "0.77.5", - "@glimmer/manager": "0.77.5", - "@glimmer/destroyable": "0.77.5", - "@glimmer/owner": "0.77.5", - "@glimmer/node": "0.77.5", - "@glimmer/opcode-compiler": "0.77.5", - "@glimmer/program": "0.77.5", - "@glimmer/reference": "0.77.5", - "@glimmer/runtime": "0.77.5", - "@glimmer/validator": "0.77.5", + "@glimmer/global-context": "0.78.2", + "@glimmer/interfaces": "0.78.2", + "@glimmer/manager": "0.78.2", + "@glimmer/destroyable": "0.78.2", + "@glimmer/owner": "0.78.2", + "@glimmer/node": "0.78.2", + "@glimmer/opcode-compiler": "0.78.2", + "@glimmer/program": "0.78.2", + "@glimmer/reference": "0.78.2", + "@glimmer/runtime": "0.78.2", + "@glimmer/validator": "0.78.2", "@simple-dom/document": "^1.4.0", "@types/qunit": "^2.9.1", "@types/rsvp": "^4.0.3", diff --git a/packages/@ember/-internals/glimmer/lib/environment.ts b/packages/@ember/-internals/glimmer/lib/environment.ts index 5e420176c3a..847642050f0 100644 --- a/packages/@ember/-internals/glimmer/lib/environment.ts +++ b/packages/@ember/-internals/glimmer/lib/environment.ts @@ -116,6 +116,14 @@ const VM_DEPRECATION_OVERRIDES: (DeprecationOptions & { enabled: '3.26.0', }, }, + { + id: 'argument-less-helper-paren-less-invocation', + until: '4.0.0', + for: 'ember-source', + since: { + enabled: '3.27.0', + }, + }, ]; const VM_ASSERTION_OVERRIDES: { id: string; message: string }[] = []; diff --git a/packages/@ember/-internals/glimmer/tests/integration/application/engine-test.js b/packages/@ember/-internals/glimmer/tests/integration/application/engine-test.js index b0e8c891186..49f3499b046 100644 --- a/packages/@ember/-internals/glimmer/tests/integration/application/engine-test.js +++ b/packages/@ember/-internals/glimmer/tests/integration/application/engine-test.js @@ -294,7 +294,7 @@ moduleFor( `); expectDeprecation( - /The `[^`]+` property(?: path)? was used in a template for the `[^`]+` component without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{[^}]+}}/ + /The `[^`]+` property(?: path)? was used in the `[^`]+` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{[^}]+}}/ ); this.add('template:application', sharedTemplate); @@ -345,7 +345,7 @@ moduleFor( this.assert.expect(2); expectDeprecation( - /The `[^`]+` property(?: path)? was used in a template for the `[^`]+` component without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{[^}]+}}/ + /The `[^`]+` property(?: path)? was used in the `[^`]+` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{[^}]+}}/ ); let sharedLayout = compile(strip` diff --git a/packages/@ember/-internals/glimmer/tests/integration/application/rendering-test.js b/packages/@ember/-internals/glimmer/tests/integration/application/rendering-test.js index 2198da8943c..ec4ff535dbb 100644 --- a/packages/@ember/-internals/glimmer/tests/integration/application/rendering-test.js +++ b/packages/@ember/-internals/glimmer/tests/integration/application/rendering-test.js @@ -107,7 +107,7 @@ moduleFor( ['@test it can access the model provided by the route via implicit this fallback']() { expectDeprecation( - /The `[^`]+` property(?: path)? was used in a template for the `[^`]+` component without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{[^}]+}}/ + /The `[^`]+` property(?: path)? was used in the `[^`]+` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{[^}]+}}/ ); this.add( @@ -143,7 +143,7 @@ moduleFor( async ['@test interior mutations on the model with set'](assert) { expectDeprecation( - /The `[^`]+` property(?: path)? was used in a template for the `[^`]+` component without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{[^}]+}}/ + /The `[^`]+` property(?: path)? was used in the `[^`]+` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{[^}]+}}/ ); this.router.map(function () { @@ -204,7 +204,7 @@ moduleFor( async ['@test interior mutations on the model with tracked properties'](assert) { expectDeprecation( - /The `[^`]+` property(?: path)? was used in a template for the `[^`]+` component without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{[^}]+}}/ + /The `[^`]+` property(?: path)? was used in the `[^`]+` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{[^}]+}}/ ); class Model { @@ -272,7 +272,7 @@ moduleFor( async ['@test exterior mutations on the model with set'](assert) { expectDeprecation( - /The `[^`]+` property(?: path)? was used in a template for the `[^`]+` component without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{[^}]+}}/ + /The `[^`]+` property(?: path)? was used in the `[^`]+` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{[^}]+}}/ ); this.router.map(function () { @@ -333,7 +333,7 @@ moduleFor( async ['@test exterior mutations on the model with tracked properties'](assert) { expectDeprecation( - /The `[^`]+` property(?: path)? was used in a template for the `[^`]+` component without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{[^}]+}}/ + /The `[^`]+` property(?: path)? was used in the `[^`]+` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{[^}]+}}/ ); this.router.map(function () { diff --git a/packages/@ember/-internals/glimmer/tests/integration/components/curly-components-test.js b/packages/@ember/-internals/glimmer/tests/integration/components/curly-components-test.js index 032cfa50f03..712f68f7d4e 100644 --- a/packages/@ember/-internals/glimmer/tests/integration/components/curly-components-test.js +++ b/packages/@ember/-internals/glimmer/tests/integration/components/curly-components-test.js @@ -3883,7 +3883,7 @@ moduleFor( ['@test can use `{{component.foo}}` in a template GH#19313']() { expectDeprecation( - /The `[^`]+` property(?: path)? was used in a template for the `[^`]+` component without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{[^}]+}}/ + /The `[^`]+` property(?: path)? was used in the `[^`]+` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{[^}]+}}/ ); this.registerComponent('foo-bar', { diff --git a/packages/@ember/-internals/glimmer/tests/integration/components/link-to/query-params-angle-test.js b/packages/@ember/-internals/glimmer/tests/integration/components/link-to/query-params-angle-test.js index ab8467d9007..47ad96e478f 100644 --- a/packages/@ember/-internals/glimmer/tests/integration/components/link-to/query-params-angle-test.js +++ b/packages/@ember/-internals/glimmer/tests/integration/components/link-to/query-params-angle-test.js @@ -144,7 +144,7 @@ moduleFor( ) { this.addTemplate( 'index', - `Index` + `Index` ); await this.visit('/'); @@ -163,7 +163,7 @@ moduleFor( async [`@test it doesn't update controller QP properties on current route when invoked (empty query-params obj, inferred route)`]( assert ) { - this.addTemplate('index', `Index`); + this.addTemplate('index', `Index`); await this.visit('/'); diff --git a/packages/@ember/-internals/glimmer/tests/integration/components/link-to/routing-angle-test.js b/packages/@ember/-internals/glimmer/tests/integration/components/link-to/routing-angle-test.js index 65eec9a144e..60ac6577dac 100644 --- a/packages/@ember/-internals/glimmer/tests/integration/components/link-to/routing-angle-test.js +++ b/packages/@ember/-internals/glimmer/tests/integration/components/link-to/routing-angle-test.js @@ -2085,7 +2085,7 @@ moduleFor( this.addTemplate( 'index', - `Index` + `Index` ); await this.visit('/'); diff --git a/packages/@ember/-internals/glimmer/tests/integration/components/template-only-components-test.js b/packages/@ember/-internals/glimmer/tests/integration/components/template-only-components-test.js index 494072aa523..22896382648 100644 --- a/packages/@ember/-internals/glimmer/tests/integration/components/template-only-components-test.js +++ b/packages/@ember/-internals/glimmer/tests/integration/components/template-only-components-test.js @@ -198,7 +198,7 @@ if (ENV._TEMPLATE_ONLY_GLIMMER_COMPONENTS) { ['@test it renders named arguments as reflected properties']() { expectDeprecation( - /The `[^`]+` property(?: path)? was used in a template for the `[^`]+` component without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{[^}]+}}/ + /The `[^`]+` property(?: path)? was used in the `[^`]+` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{[^}]+}}/ ); this.registerTemplateOnlyComponent('foo-bar', '|{{foo}}|{{this.bar}}|'); diff --git a/packages/@ember/-internals/glimmer/tests/integration/custom-modifier-manager-test.js b/packages/@ember/-internals/glimmer/tests/integration/custom-modifier-manager-test.js index 508dfc567ed..51f639d9e18 100644 --- a/packages/@ember/-internals/glimmer/tests/integration/custom-modifier-manager-test.js +++ b/packages/@ember/-internals/glimmer/tests/integration/custom-modifier-manager-test.js @@ -1,5 +1,11 @@ import { DEBUG } from '@glimmer/env'; -import { moduleFor, RenderingTestCase, runTask, defineSimpleModifier } from 'internal-test-helpers'; +import { + moduleFor, + RenderingTestCase, + runTask, + defineSimpleHelper, + defineSimpleModifier, +} from 'internal-test-helpers'; import { Component } from '@ember/-internals/glimmer'; import { setModifierManager, modifierCapabilities } from '@glimmer/manager'; @@ -644,6 +650,20 @@ moduleFor( }); }, /Cannot use the \(modifier\) keyword yet, as it has not been implemented/); } + + '@feature(EMBER_DYNAMIC_HELPERS_AND_MODIFIERS) Can use a dynamic modifier with a nested dynamic helper'() { + let foo = defineSimpleHelper(() => 'Hello, world!'); + let bar = defineSimpleModifier((element, [value]) => (element.innerHTML = value)); + + this.registerComponent('baz', { + template: '
', + ComponentClass: Component.extend({ tagName: '', foo, bar }), + }); + + this.render(''); + this.assertHTML('
Hello, world!
'); + this.assertStableRerender(); + } } ); diff --git a/packages/@ember/-internals/glimmer/tests/integration/helpers/custom-helper-test.js b/packages/@ember/-internals/glimmer/tests/integration/helpers/custom-helper-test.js index ba4bb014444..dcba0e131bf 100644 --- a/packages/@ember/-internals/glimmer/tests/integration/helpers/custom-helper-test.js +++ b/packages/@ember/-internals/glimmer/tests/integration/helpers/custom-helper-test.js @@ -36,7 +36,7 @@ moduleFor( ['@test it does not resolve helpers with a `.` (period)']() { expectDeprecation( - /The `[^`]+` property(?: path)? was used in a template for the `[^`]+` component without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{[^}]+}}/ + /The `[^`]+` property(?: path)? was used in the `[^`]+` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{[^}]+}}/ ); this.registerHelper('hello.world', () => 'hello world'); @@ -826,6 +826,20 @@ moduleFor( }, /Cannot use the \(helper\) keyword yet, as it has not been implemented/); } + '@feature(EMBER_DYNAMIC_HELPERS_AND_MODIFIERS) Can use a dynamic helper with nested helpers'() { + let foo = defineSimpleHelper(() => 'world!'); + let bar = defineSimpleHelper((value) => 'Hello, ' + value); + + this.registerComponent('baz', { + template: '{{this.bar (this.foo)}}', + ComponentClass: Component.extend({ foo, bar }), + }); + + this.render(''); + this.assertText('Hello, world!'); + this.assertStableRerender(); + } + ['@test helpers are not computed eagerly when used with if expressions'](assert) { this.registerHelper('is-ok', () => 'hello'); this.registerHelper('throws-error', () => assert.ok(false, 'helper was computed eagerly')); @@ -909,4 +923,95 @@ if (DEBUG) { } } ); + + moduleFor( + 'Helpers test: argument-less helper invocation in named arguments position', + class extends RenderingTestCase { + constructor() { + super(...arguments); + + this.registerComponent('bar', { + template: '[{{is-string @content}}][{{@content}}]', + }); + + this.registerHelper('is-string', ([value]) => typeof value === 'string'); + } + + ['@test invoking an argument-less helper without parens in named argument position is deprecated']() { + this.registerHelper('foo', () => 'Hello, world!'); + + expectDeprecation( + () => this.render('', { foo: 'Not it!' }), + new RegExp( + /The `foo` helper was used in the `-top-level` template as /.source + + /`@content={{foo}}`\. This is ambigious between wanting the `@content` /.source + + /argument to be the `foo` helper itself, or the result of invoking the /.source + + /`foo` helper \(current behavior\)\. This implicit invocation behavior /.source + + /has been deprecated\./.source + ) + ); + + this.assertText('[true][Hello, world!]'); + this.assertStableRerender(); + } + + ['@test invoking an argument-less helper with parens in named argument position is not deprecated']() { + this.registerHelper('foo', () => 'Hello, world!'); + + expectNoDeprecation(() => this.render('', { foo: 'Not it!' })); + + this.assertText('[true][Hello, world!]'); + this.assertStableRerender(); + } + + ['@test invoking an argument-less helper with quotes in named argument position is not deprecated']() { + this.registerHelper('foo', () => 'Hello, world!'); + + expectNoDeprecation(() => this.render('', { foo: 'Not it!' })); + + this.assertText('[true][Hello, world!]'); + this.assertStableRerender(); + } + + ['@test passing a local helper in named argument position is not deprecated']() { + let foo = defineSimpleHelper(() => 'Hello, world!'); + + expectNoDeprecation(() => + this.render(`{{#let this.foo as |foo|}}{{/let}}`, { foo }) + ); + + this.assertText('[false][Hello, world!]'); + this.assertStableRerender(); + } + + // TODO: this one really should work, and there is a passing test in glimmer-vm, + // but somehow it doesn't work here. This is almost certainly a VM bug as something + // is trying to call `block.compile()` but `block` is the reference for `this.foo`. + // So the execution stack is probably off-by-one or something. + + ['@test invoking a local helper with parens in named argument position is not deprecated']() { + let foo = defineSimpleHelper(() => 'Hello, world!'); + + expectNoDeprecation(() => + this.render(`{{#let this.foo as |foo|}}{{/let}}`, { foo }) + ); + + this.assertText('[true][Hello, world!]'); + this.assertStableRerender(); + } + + // TODO: this one doesn't work yet, and there is a failing test in glimmer-vm + + ['@skip invoking a helper with quotes in named argument position is not deprecated']() { + let foo = defineSimpleHelper(() => 'Hello, world!'); + + expectNoDeprecation(() => + this.render(`{{#let this.foo as |foo|}}{{/let}}`, { foo }) + ); + + this.assertText('[true][Hello, world!]'); + this.assertStableRerender(); + } + } + ); } diff --git a/packages/@ember/-internals/glimmer/tests/integration/helpers/yield-test.js b/packages/@ember/-internals/glimmer/tests/integration/helpers/yield-test.js index 82a4d2f7d35..b444d3097e7 100644 --- a/packages/@ember/-internals/glimmer/tests/integration/helpers/yield-test.js +++ b/packages/@ember/-internals/glimmer/tests/integration/helpers/yield-test.js @@ -53,6 +53,28 @@ moduleFor( this.assertText('[In layout:] [In block:] Seattle'); } + ['@feature(EMBER_NAMED_BLOCKS) <:else> and <:inverse> named blocks']() { + this.registerComponent('yielder', { + template: + '[:else][{{has-block "else"}}][{{yield to="else"}}]' + + '[:inverse][{{has-block "inverse"}}][{{yield to="inverse"}}]', + }); + + this.render( + '[]' + + '[<:else>Hello]' + + '[<:inverse>Goodbye]' + ); + + this.assertText( + '[[:else][false][][:inverse][false][]]' + + '[[:else][true][Hello][:inverse][true][Hello]]' + + '[[:else][true][Goodbye][:inverse][true][Goodbye]]' + ); + + this.assertStableRerender(); + } + ['@test templates should yield to block inside a nested component']() { this.registerComponent('outer-comp', { template: '
[In layout:] {{yield}}
', diff --git a/packages/@ember/-internals/glimmer/tests/integration/syntax/each-test.js b/packages/@ember/-internals/glimmer/tests/integration/syntax/each-test.js index 33bac1c5f01..07a9ebb3f79 100644 --- a/packages/@ember/-internals/glimmer/tests/integration/syntax/each-test.js +++ b/packages/@ember/-internals/glimmer/tests/integration/syntax/each-test.js @@ -732,7 +732,7 @@ class EachTest extends AbstractEachTest { ['@test the scoped variable is not available outside the {{#each}} block.']() { expectDeprecation( - /The `[^`]+` property(?: path)? was used in a template for the `[^`]+` component without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{[^}]+}}/ + /The `[^`]+` property(?: path)? was used in the `[^`]+` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{[^}]+}}/ ); this.makeList(['Yehuda']); @@ -953,7 +953,7 @@ class EachTest extends AbstractEachTest { ['@test the scoped variable is not available outside the {{#each}} block']() { expectDeprecation( - /The `[^`]+` property(?: path)? was used in a template for the `[^`]+` component without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{[^}]+}}/ + /The `[^`]+` property(?: path)? was used in the `[^`]+` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{[^}]+}}/ ); let first = this.createList(['Limbo']); diff --git a/packages/@ember/-internals/glimmer/tests/integration/syntax/let-test.js b/packages/@ember/-internals/glimmer/tests/integration/syntax/let-test.js index 1bb3d50eed6..a08c411f2a9 100644 --- a/packages/@ember/-internals/glimmer/tests/integration/syntax/let-test.js +++ b/packages/@ember/-internals/glimmer/tests/integration/syntax/let-test.js @@ -97,7 +97,7 @@ moduleFor( ['@test the scoped variable is not available outside the {{#let}} block.']() { expectDeprecation( - /The `[^`]+` property(?: path)? was used in a template for the `[^`]+` component without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{[^}]+}}/ + /The `[^`]+` property(?: path)? was used in the `[^`]+` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{[^}]+}}/ ); this.render(`{{name}}-{{#let this.other as |name|}}{{name}}{{/let}}-{{name}}`, { @@ -247,7 +247,7 @@ moduleFor( ['@test the scoped variable is not available outside the {{#let}} block']() { expectDeprecation( - /The `[^`]+` property(?: path)? was used in a template for the `[^`]+` component without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{[^}]+}}/ + /The `[^`]+` property(?: path)? was used in the `[^`]+` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{[^}]+}}/ ); this.render( @@ -332,7 +332,7 @@ moduleFor( ['@test nested {{#let}} blocks should have access to root context']() { expectDeprecation( - /The `[^`]+` property(?: path)? was used in a template for the `[^`]+` component without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{[^}]+}}/ + /The `[^`]+` property(?: path)? was used in the `[^`]+` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{[^}]+}}/ ); this.render( diff --git a/packages/@ember/-internals/glimmer/tests/integration/syntax/with-test.js b/packages/@ember/-internals/glimmer/tests/integration/syntax/with-test.js index a99458c9c43..b3e44698d1d 100644 --- a/packages/@ember/-internals/glimmer/tests/integration/syntax/with-test.js +++ b/packages/@ember/-internals/glimmer/tests/integration/syntax/with-test.js @@ -106,7 +106,7 @@ moduleFor( ['@test the scoped variable is not available outside the {{#with}} block.']() { expectDeprecation( - /The `[^`]+` property(?: path)? was used in a template for the `[^`]+` component without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{[^}]+}}/ + /The `[^`]+` property(?: path)? was used in the `[^`]+` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{[^}]+}}/ ); this.render(`{{name}}-{{#with this.other as |name|}}{{name}}{{/with}}-{{name}}`, { @@ -295,7 +295,7 @@ moduleFor( ['@test the scoped variable is not available outside the {{#with}} block']() { expectDeprecation( - /The `[^`]+` property(?: path)? was used in a template for the `[^`]+` component without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{[^}]+}}/ + /The `[^`]+` property(?: path)? was used in the `[^`]+` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{[^}]+}}/ ); this.render( @@ -380,7 +380,7 @@ moduleFor( ['@test nested {{#with}} blocks should have access to root context']() { expectDeprecation( - /The `[^`]+` property(?: path)? was used in a template for the `[^`]+` component without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{[^}]+}}/ + /The `[^`]+` property(?: path)? was used in the `[^`]+` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{[^}]+}}/ ); this.render( diff --git a/yarn.lock b/yarn.lock index b387ddcfff1..ea432d8bb53 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1588,194 +1588,194 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" -"@glimmer/compiler@0.77.5": - version "0.77.5" - resolved "https://registry.yarnpkg.com/@glimmer/compiler/-/compiler-0.77.5.tgz#f12cf9cff8b8a8c94e8edffa6f967caf3ff92776" - integrity sha512-WXNfEtqmoAur2+aU0qZnE1cK6GVucwUlCHJd6756FrFxTcayl/Zj6+Ti5yfTSnqXnYo2rRWn0FCc/WZ0wGlTGw== - dependencies: - "@glimmer/interfaces" "0.77.5" - "@glimmer/syntax" "0.77.5" - "@glimmer/util" "0.77.5" - "@glimmer/wire-format" "0.77.5" +"@glimmer/compiler@0.78.2": + version "0.78.2" + resolved "https://registry.yarnpkg.com/@glimmer/compiler/-/compiler-0.78.2.tgz#b02d4f1027770446637ffcce41bb5dfc71076c82" + integrity sha512-tI0vkwz4qxsTsOOrbJpXZiOQvDwl5dOyPbeq5Z0Fca1byaAPhxPgq+lvuSny0bDYz+T+NGS0B+9MB4yLMnCl7Q== + dependencies: + "@glimmer/interfaces" "0.78.2" + "@glimmer/syntax" "0.78.2" + "@glimmer/util" "0.78.2" + "@glimmer/wire-format" "0.78.2" "@simple-dom/interface" "^1.4.0" -"@glimmer/destroyable@0.77.5": - version "0.77.5" - resolved "https://registry.yarnpkg.com/@glimmer/destroyable/-/destroyable-0.77.5.tgz#c55089f2007a42a59058784d75b30784ed138bc7" - integrity sha512-s8cVbb+WlE6tTpwRhzOhlwO9PSokjC3s7wzkD6gHCQIPQivc8BHqZ2czUWfQFhHZdYVk4dg04pFMq+y8m3qC0Q== +"@glimmer/destroyable@0.78.2": + version "0.78.2" + resolved "https://registry.yarnpkg.com/@glimmer/destroyable/-/destroyable-0.78.2.tgz#13a3eab3397f25b1a52e7dc3f9f81cf7ceec621c" + integrity sha512-cZ+fXp4PPf9CkDV8GY8A8sd5IJ367uEDk99n0DNBLcypeZU0REb8rCIV/GzJoCUcCnT9FzDXuFGgelp23x2tFw== dependencies: "@glimmer/env" "0.1.7" - "@glimmer/global-context" "0.77.5" - "@glimmer/interfaces" "0.77.5" - "@glimmer/util" "0.77.5" + "@glimmer/global-context" "0.78.2" + "@glimmer/interfaces" "0.78.2" + "@glimmer/util" "0.78.2" -"@glimmer/encoder@0.77.5": - version "0.77.5" - resolved "https://registry.yarnpkg.com/@glimmer/encoder/-/encoder-0.77.5.tgz#40dd91417998c7f1c6b1fa947fa881a598250bc3" - integrity sha512-BJpuFi78T9U8g5ix5R99kYhB4m5hQRfB0femrvGhECyhtOZJ+Y797uuOaSqmGTYTY8VIhvxEao6YRaKly0K3mw== +"@glimmer/encoder@0.78.2": + version "0.78.2" + resolved "https://registry.yarnpkg.com/@glimmer/encoder/-/encoder-0.78.2.tgz#39a4f8223cd7819417909d4a7c86c9e31bb1eef5" + integrity sha512-3V+DYqLf5sY8ehV4qaeACqpy8i1pjP0zGlsxiaFb3LdfIbfuzrNxE1JQGvN/60urqhKqGeeIk+e/Y2879voVbw== dependencies: "@glimmer/env" "0.1.7" - "@glimmer/interfaces" "0.77.5" - "@glimmer/vm" "0.77.5" + "@glimmer/interfaces" "0.78.2" + "@glimmer/vm" "0.78.2" "@glimmer/env@0.1.7", "@glimmer/env@^0.1.7": version "0.1.7" resolved "https://registry.yarnpkg.com/@glimmer/env/-/env-0.1.7.tgz#fd2d2b55a9029c6b37a6c935e8c8871ae70dfa07" integrity sha1-/S0rVakCnGs3psk16MiHGucN+gc= -"@glimmer/global-context@0.77.5": - version "0.77.5" - resolved "https://registry.yarnpkg.com/@glimmer/global-context/-/global-context-0.77.5.tgz#ff72f216cd39f7e7923d54f3bb0862910070a9cc" - integrity sha512-kWHYjOyhYeyBEEuu3gMJsLO9WxFlXFFeWmtk2raWkJ37TndZNUFMQt6C0yOyT/AkXUJH5+1W7XSia1P3TB6CKw== +"@glimmer/global-context@0.78.2": + version "0.78.2" + resolved "https://registry.yarnpkg.com/@glimmer/global-context/-/global-context-0.78.2.tgz#3443b000e8617da39202d5319db881ff59a2f248" + integrity sha512-om0ryTEqER1ZZKD9TLBJlPm/M3z9EwHMR22luufPKZ1la8RrDQpGPMh32a8QzWnOyigiv2NXIfuUiSh5OGR/BA== dependencies: "@glimmer/env" "^0.1.7" -"@glimmer/interfaces@0.77.5": - version "0.77.5" - resolved "https://registry.yarnpkg.com/@glimmer/interfaces/-/interfaces-0.77.5.tgz#74c791ba4712588f2e7b65669d90e8d349eee30a" - integrity sha512-ahiZX2EG2w1DrXmIxjzmkRrAeRJS+y35YTXhP82/NSyLiS2g7NTgYbqXpsS+VfvYRZ2+EbeXzY7cTe8mN4OUxg== +"@glimmer/interfaces@0.78.2": + version "0.78.2" + resolved "https://registry.yarnpkg.com/@glimmer/interfaces/-/interfaces-0.78.2.tgz#4dafd7f7abaf03f5a9b5d2192205ad007550ca36" + integrity sha512-OM1zJHNioKwd+7PM+mt28Ine9QfZLI7bwDOgB1Y+lHEZ0OdAGu6m351RBrXfQEgDCoVSFPQpOtUpWLP/FU3Utw== dependencies: "@simple-dom/interface" "^1.4.0" -"@glimmer/low-level@0.77.5": - version "0.77.5" - resolved "https://registry.yarnpkg.com/@glimmer/low-level/-/low-level-0.77.5.tgz#f198acd9c6b5f39da07756db32f11cf0f8714f7e" - integrity sha512-A+bNz17vBcTe0qn38q0sdDldCj4gKdFllw8lRHms2Xn50xc+e0uQ00sFFVBT51XDrKiX6u+U72sVnBrUYCbGXg== +"@glimmer/low-level@0.78.2": + version "0.78.2" + resolved "https://registry.yarnpkg.com/@glimmer/low-level/-/low-level-0.78.2.tgz#bca5f666760ce98345e87c5b3e37096e772cb2de" + integrity sha512-0S6TWOOd0fzLLysw1pWZN0TgasaHmYs1Sjz9Til1mTByIXU1S+1rhdyr2veSQPO/aRjPuEQyKXZQHvx23Zax6w== -"@glimmer/manager@0.77.5": - version "0.77.5" - resolved "https://registry.yarnpkg.com/@glimmer/manager/-/manager-0.77.5.tgz#dfbd94a2f47640f8d6fcdf67bb8cc8e995c835f8" - integrity sha512-neURL3qGaDuiq/8YYE4F2reGnS42vMjgYcJjP00eY/pBHfOY6icPR1oPwGmTt8Qr6topGc3FmUaUWDXPt0Lnkg== +"@glimmer/manager@0.78.2": + version "0.78.2" + resolved "https://registry.yarnpkg.com/@glimmer/manager/-/manager-0.78.2.tgz#5c1d0fc24225f9546b182cab6d8ea800135bf86b" + integrity sha512-mHTtPJXf7uYVOsHSrLQEcv0nxGj9M2Rmks60hWKxk/pdNwt12FzRElMqyyj1j9lSbUj+LOpt9g+IZYu03w4O8g== dependencies: - "@glimmer/destroyable" "0.77.5" + "@glimmer/destroyable" "0.78.2" "@glimmer/env" "0.1.7" - "@glimmer/interfaces" "0.77.5" - "@glimmer/reference" "0.77.5" - "@glimmer/util" "0.77.5" - "@glimmer/validator" "0.77.5" - -"@glimmer/node@0.77.5": - version "0.77.5" - resolved "https://registry.yarnpkg.com/@glimmer/node/-/node-0.77.5.tgz#6bb693744d612a770d106b69d2803c2423c15868" - integrity sha512-BBM32C5GldOFxUbV2XljwoNmOGP9YobJF9WEW1zVkbggDZcGH090VwbTErrXVv8aw987fGXqei0UCFGleOXu1A== - dependencies: - "@glimmer/interfaces" "0.77.5" - "@glimmer/runtime" "0.77.5" - "@glimmer/util" "0.77.5" + "@glimmer/interfaces" "0.78.2" + "@glimmer/reference" "0.78.2" + "@glimmer/util" "0.78.2" + "@glimmer/validator" "0.78.2" + +"@glimmer/node@0.78.2": + version "0.78.2" + resolved "https://registry.yarnpkg.com/@glimmer/node/-/node-0.78.2.tgz#a27bd6d5ef188ea4892bc6953a62fc165a173893" + integrity sha512-e5mc63xbvix6qRwGLWrc5zYi0PSN5bUUlx6SWCxItObht7i7TpkylYo3y4bDZc2LqfkTN8e8dIyPqfF2dZsLsQ== + dependencies: + "@glimmer/interfaces" "0.78.2" + "@glimmer/runtime" "0.78.2" + "@glimmer/util" "0.78.2" "@simple-dom/document" "^1.4.0" "@simple-dom/interface" "^1.4.0" -"@glimmer/opcode-compiler@0.77.5": - version "0.77.5" - resolved "https://registry.yarnpkg.com/@glimmer/opcode-compiler/-/opcode-compiler-0.77.5.tgz#088f946587c905fcb37a6516df5cb858fc177d7c" - integrity sha512-qJYdDeJFch2BGpYWmZ0klExsBvu6bZYoNyRtzUmuA0+xzT2I1HdwrTpekkAHVDfB0rfHArHmcimTxgFF15o4Mg== +"@glimmer/opcode-compiler@0.78.2": + version "0.78.2" + resolved "https://registry.yarnpkg.com/@glimmer/opcode-compiler/-/opcode-compiler-0.78.2.tgz#c5199fa02a7e36dbe62e4387bf37d54b1f2c33c7" + integrity sha512-WEmeMZMt3nD8jcUlAYLuW6xVB0uOBkyGAUHU7SHcldnfdP3GTilyPO3OzRC9ksEHK/bwtFelrbwu5tpPH1RgvQ== dependencies: - "@glimmer/encoder" "0.77.5" + "@glimmer/encoder" "0.78.2" "@glimmer/env" "0.1.7" - "@glimmer/interfaces" "0.77.5" - "@glimmer/reference" "0.77.5" - "@glimmer/util" "0.77.5" - "@glimmer/vm" "0.77.5" - "@glimmer/wire-format" "0.77.5" + "@glimmer/interfaces" "0.78.2" + "@glimmer/reference" "0.78.2" + "@glimmer/util" "0.78.2" + "@glimmer/vm" "0.78.2" + "@glimmer/wire-format" "0.78.2" -"@glimmer/owner@0.77.5": - version "0.77.5" - resolved "https://registry.yarnpkg.com/@glimmer/owner/-/owner-0.77.5.tgz#d81933f3d6c4c0feafcf3d972cc7edca00532a5b" - integrity sha512-0jPDb63qBNN20QkVprIuennHP1Vf3fWCQNtuVOYsDOjyV2RIlrOwTVLuFIpua86nSBRQq7gH411ZyEpoq6H3Cg== +"@glimmer/owner@0.78.2": + version "0.78.2" + resolved "https://registry.yarnpkg.com/@glimmer/owner/-/owner-0.78.2.tgz#15e0adf8e2fef7045674e67627fa48d4b8df877e" + integrity sha512-02I4O5kgmQasE5vbmRY/3F6ZshPURAWtZgvCR5+YHgGo+Jt1UBMaLLDtbg8ldPDc5muUmonA3ZXIYmm1F4wTSw== dependencies: - "@glimmer/util" "0.77.5" + "@glimmer/util" "0.78.2" -"@glimmer/program@0.77.5": - version "0.77.5" - resolved "https://registry.yarnpkg.com/@glimmer/program/-/program-0.77.5.tgz#53ce8da78377b255a22eb1d86eb5e6a837393305" - integrity sha512-19rWpeqqK7UF6CT9G+A7TOnWeoIlT8wCF4gKQNRbp2sbUugJ0PyTn7VzZTLAc110F0ohFlv17yKIrDBoPytHDw== +"@glimmer/program@0.78.2": + version "0.78.2" + resolved "https://registry.yarnpkg.com/@glimmer/program/-/program-0.78.2.tgz#c38f2f55005b3c2e8f1a4825aacc2ffd6891d9a1" + integrity sha512-6ZeCSwqnC0mMzfHwbToTX/LC6HeUm2UMAaMri7WIh9ncNetCfKqBXRdFIKepG7fnWEADuCwE/+r6e2Qq2x3dNQ== dependencies: - "@glimmer/encoder" "0.77.5" + "@glimmer/encoder" "0.78.2" "@glimmer/env" "0.1.7" - "@glimmer/interfaces" "0.77.5" - "@glimmer/manager" "0.77.5" - "@glimmer/opcode-compiler" "0.77.5" - "@glimmer/util" "0.77.5" + "@glimmer/interfaces" "0.78.2" + "@glimmer/manager" "0.78.2" + "@glimmer/opcode-compiler" "0.78.2" + "@glimmer/util" "0.78.2" -"@glimmer/reference@0.77.5": - version "0.77.5" - resolved "https://registry.yarnpkg.com/@glimmer/reference/-/reference-0.77.5.tgz#54eac6b00bd06cb84ff8c9f854d9a7811f2c298f" - integrity sha512-L432i/VD4Kud8qsvPs3bY12hjkKOjfqH1tyGnjfdNAip/k6Z7GIuFDi+T/lJOLWLFONh4414KDopTysBXx9USw== +"@glimmer/reference@0.78.2": + version "0.78.2" + resolved "https://registry.yarnpkg.com/@glimmer/reference/-/reference-0.78.2.tgz#dbffbeb4bc42f64f57104eebab0eb4ef7778d989" + integrity sha512-vUk20mKknDqtQEWfGbDwU9eh+XVztUUuww6V6/UKm8JokBDjGkdt4w74R2wvPIrDZYkfXErZjXwY8Ltu1lBV0A== dependencies: "@glimmer/env" "^0.1.7" - "@glimmer/global-context" "0.77.5" - "@glimmer/interfaces" "0.77.5" - "@glimmer/util" "0.77.5" - "@glimmer/validator" "0.77.5" + "@glimmer/global-context" "0.78.2" + "@glimmer/interfaces" "0.78.2" + "@glimmer/util" "0.78.2" + "@glimmer/validator" "0.78.2" -"@glimmer/runtime@0.77.5": - version "0.77.5" - resolved "https://registry.yarnpkg.com/@glimmer/runtime/-/runtime-0.77.5.tgz#6b936da4e2f37cd3994626efa672b15c715ae0f8" - integrity sha512-rLzXY2IFw7yzsvOwy/3eLxoza9Y9vx52bivlZJ9+8AWCtn4ywNGOKwvv4i8Mf1EMXtvo3nZHC9yIwfpUJg8NLg== +"@glimmer/runtime@0.78.2": + version "0.78.2" + resolved "https://registry.yarnpkg.com/@glimmer/runtime/-/runtime-0.78.2.tgz#e8d8de5b1c74f2aeaa129b43d264ff36de4de5a1" + integrity sha512-pzndIFJl2ycVAAnaFNm2MLwDTKymn03a+xAtHpsFwEZQ3EE2wQNnEKyBDI5SkNRShD8nkbwodd0N+YwZdGDKHw== dependencies: - "@glimmer/destroyable" "0.77.5" + "@glimmer/destroyable" "0.78.2" "@glimmer/env" "0.1.7" - "@glimmer/global-context" "0.77.5" - "@glimmer/interfaces" "0.77.5" - "@glimmer/low-level" "0.77.5" - "@glimmer/owner" "0.77.5" - "@glimmer/program" "0.77.5" - "@glimmer/reference" "0.77.5" - "@glimmer/util" "0.77.5" - "@glimmer/validator" "0.77.5" - "@glimmer/vm" "0.77.5" - "@glimmer/wire-format" "0.77.5" + "@glimmer/global-context" "0.78.2" + "@glimmer/interfaces" "0.78.2" + "@glimmer/low-level" "0.78.2" + "@glimmer/owner" "0.78.2" + "@glimmer/program" "0.78.2" + "@glimmer/reference" "0.78.2" + "@glimmer/util" "0.78.2" + "@glimmer/validator" "0.78.2" + "@glimmer/vm" "0.78.2" + "@glimmer/wire-format" "0.78.2" "@simple-dom/interface" "^1.4.0" -"@glimmer/syntax@0.77.5": - version "0.77.5" - resolved "https://registry.yarnpkg.com/@glimmer/syntax/-/syntax-0.77.5.tgz#b841803dd54ea86de7e8ae8850b3760000033bf2" - integrity sha512-FRb1onDsP9P2CnbwTyKF91QYIbRJ0svALG7TnAJlUjQU9E4lWdI5lf7vPRh45A4W1rjcAcIcuiIS6oGrdEkhuQ== +"@glimmer/syntax@0.78.2": + version "0.78.2" + resolved "https://registry.yarnpkg.com/@glimmer/syntax/-/syntax-0.78.2.tgz#3be25df8c7b7564d94d204ac0ab0c9717abe9043" + integrity sha512-B6OgBtUFo+K0sA+72sNQOs//TKJIZdAPUAIQGjZWsfGZGpzlFx3kuouKeK1DCtXxRIktqSDpmXFcPNKd1OqbOw== dependencies: - "@glimmer/interfaces" "0.77.5" - "@glimmer/util" "0.77.5" + "@glimmer/interfaces" "0.78.2" + "@glimmer/util" "0.78.2" "@handlebars/parser" "~2.0.0" simple-html-tokenizer "^0.5.10" -"@glimmer/util@0.77.5": - version "0.77.5" - resolved "https://registry.yarnpkg.com/@glimmer/util/-/util-0.77.5.tgz#b4e2909d34eb7db34c63fd9d942e0ffa458d4c90" - integrity sha512-Y78NnJClpz7sBks3q+ZNNVfCjy8ALcCQOG5GEIm/P9O3+eXMBsx2ac9Umu4LBZqmeINQ9CtFz10u2BiyxOtSQg== +"@glimmer/util@0.78.2": + version "0.78.2" + resolved "https://registry.yarnpkg.com/@glimmer/util/-/util-0.78.2.tgz#d6e7e363d198ef426858a3958170774b4548cce1" + integrity sha512-SqmlzdtXJwAhf5fhflFsoYuM3zk1M/8bamqGXQpCB5I40NpcshpFybY/ZMwIGsYOWEwIo/LDDC1UBZ3gyMPZzA== dependencies: "@glimmer/env" "0.1.7" - "@glimmer/interfaces" "0.77.5" + "@glimmer/interfaces" "0.78.2" "@simple-dom/interface" "^1.4.0" -"@glimmer/validator@0.77.5": - version "0.77.5" - resolved "https://registry.yarnpkg.com/@glimmer/validator/-/validator-0.77.5.tgz#a5e272d700f661aa0b2f350670974792b7785a49" - integrity sha512-LluyvxWTqys5ulkYA24sFDQ/obwOTwbLDakNBOlHvKdh814h+scz4y8bckx6qY7AsJObQgZVAg00r1Nlhfs6fQ== +"@glimmer/validator@0.78.2": + version "0.78.2" + resolved "https://registry.yarnpkg.com/@glimmer/validator/-/validator-0.78.2.tgz#bc7f3cf376789d1090add73bed599e840697fdc8" + integrity sha512-pzdC9uPaQerOoPEeSV9U/oRbZtgTkL+BryGR8R534mhAFfVlzenAa4aavKZEcnIns73MNN/G1l2iYDmjSH/6Hg== dependencies: "@glimmer/env" "^0.1.7" - "@glimmer/global-context" "0.77.5" + "@glimmer/global-context" "0.78.2" -"@glimmer/vm-babel-plugins@0.77.5": - version "0.77.5" - resolved "https://registry.yarnpkg.com/@glimmer/vm-babel-plugins/-/vm-babel-plugins-0.77.5.tgz#daffb6507aa6b08ec36f69d652897d339fdd0007" - integrity sha512-jTBM7fJMrIEy4/bCeI8e7ypR+AuWYzLA+KORCGbnTJtL/NYg4G8qwhQAZBtg1d3KmoqyqaCsyqE6f4/tzJO4eQ== +"@glimmer/vm-babel-plugins@0.78.2": + version "0.78.2" + resolved "https://registry.yarnpkg.com/@glimmer/vm-babel-plugins/-/vm-babel-plugins-0.78.2.tgz#b530a19f54da385c7099a22cf348e9062d186838" + integrity sha512-GSEf16h6OCtKx7PsSvD21cLXZuVc6swW2rSOAvfLeZco1DEWMRgYTwkCkColydKZcQ3gvwbPBeYwTC2K6tlnjg== dependencies: babel-plugin-debug-macros "^0.3.4" -"@glimmer/vm@0.77.5": - version "0.77.5" - resolved "https://registry.yarnpkg.com/@glimmer/vm/-/vm-0.77.5.tgz#ff244acb0ce4a0076df01da8fdd37d690833e478" - integrity sha512-SsG/BEnM+ySk236UlHHoxYufdWwMSmr2RiapQp6O4pDzy7npkRebTYOzXCXpYrFkjDcTwPaygYCnr7RRFJXEUA== +"@glimmer/vm@0.78.2": + version "0.78.2" + resolved "https://registry.yarnpkg.com/@glimmer/vm/-/vm-0.78.2.tgz#525589b4d3556eafea84a2b9c6e7aa72698bf5d6" + integrity sha512-x+0qn1B00i8Gcw3ptqEaGsIECG4M1IdmxtLSIr+Kfga/Da/PPLXJYQx+jk924rVCnad2FzxizhyKRxCqPbU+EA== dependencies: - "@glimmer/interfaces" "0.77.5" - "@glimmer/util" "0.77.5" + "@glimmer/interfaces" "0.78.2" + "@glimmer/util" "0.78.2" -"@glimmer/wire-format@0.77.5": - version "0.77.5" - resolved "https://registry.yarnpkg.com/@glimmer/wire-format/-/wire-format-0.77.5.tgz#326ae0e09d81182096c0e4efef7cc197d96081d4" - integrity sha512-/FyjStQtyHkCS8dOp7t79e+PIgEAF0yo9rxmazexl3Ie3ePE9qRxOQi/GKIxi1V1YGpxxv8Aq6wP8kteUzCDaQ== +"@glimmer/wire-format@0.78.2": + version "0.78.2" + resolved "https://registry.yarnpkg.com/@glimmer/wire-format/-/wire-format-0.78.2.tgz#32686633e66fe674ea39910d48e3db9ba524eadb" + integrity sha512-kd8xP9P7oo+F0EijG3/2YwzUXq/AESxPS2hadjmhu2uMZ+QOzgYbeo1xC2Ig7EkXhf1tdxlmVpCS4rwhCsxzXA== dependencies: - "@glimmer/interfaces" "0.77.5" - "@glimmer/util" "0.77.5" + "@glimmer/interfaces" "0.78.2" + "@glimmer/util" "0.78.2" "@handlebars/parser@~2.0.0": version "2.0.0"