diff --git a/package.json b/package.json index cc05ff66278..b361b401eed 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.0", "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.0", "@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.0", + "@glimmer/interfaces": "0.78.0", + "@glimmer/manager": "0.78.0", + "@glimmer/destroyable": "0.78.0", + "@glimmer/owner": "0.78.0", + "@glimmer/node": "0.78.0", + "@glimmer/opcode-compiler": "0.78.0", + "@glimmer/program": "0.78.0", + "@glimmer/reference": "0.78.0", + "@glimmer/runtime": "0.78.0", + "@glimmer/validator": "0.78.0", "@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..41a994003a2 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. + + ['@skip 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/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..806b1b50730 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.0": + version "0.78.0" + resolved "https://registry.yarnpkg.com/@glimmer/compiler/-/compiler-0.78.0.tgz#711b2940e5280ac09f59b0b7b42dcce25a5ce11c" + integrity sha512-e6LSESRKZZlViCZTYi21kyfWf0BPiEFWij5Yvpyq9iNFnhJIbSa2+LfhyHZKaWU7lXILOcrdqWoFqqRREwkQyg== + dependencies: + "@glimmer/interfaces" "0.78.0" + "@glimmer/syntax" "0.78.0" + "@glimmer/util" "0.78.0" + "@glimmer/wire-format" "0.78.0" "@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.0": + version "0.78.0" + resolved "https://registry.yarnpkg.com/@glimmer/destroyable/-/destroyable-0.78.0.tgz#5a67da4c6269c03870de917e98d7c125aa721575" + integrity sha512-RwwSQ1UthO+pSIPPOwM7gD2IMIiYClzzLdOTpPilW8BPy27663HV+oHaFfTRMQrsQ9bA+uNOZnUNF86bDFQmWQ== 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.0" + "@glimmer/interfaces" "0.78.0" + "@glimmer/util" "0.78.0" -"@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.0": + version "0.78.0" + resolved "https://registry.yarnpkg.com/@glimmer/encoder/-/encoder-0.78.0.tgz#cbe024b3ae2709c717db2c10be4b71a7dfadcdd9" + integrity sha512-TbB4hfsQwMEyvme90y4x0EDqrtwRAaMhOTi536D/zMJSj8i9l71fVD8G+omtvAexmg1gUvOOBh+cWeeTWF+caA== dependencies: "@glimmer/env" "0.1.7" - "@glimmer/interfaces" "0.77.5" - "@glimmer/vm" "0.77.5" + "@glimmer/interfaces" "0.78.0" + "@glimmer/vm" "0.78.0" "@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.0": + version "0.78.0" + resolved "https://registry.yarnpkg.com/@glimmer/global-context/-/global-context-0.78.0.tgz#c25eee9a0833eb38fd1590f86b42c6b98b8a6b67" + integrity sha512-u+gfALFpGWH5lzyCgpLlvgBtkcNiTevKdWPCWaj4KKKv0/x/WYfgsH0PouEtCdGS5dRUUArgPTJle4msK+pJYg== 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.0": + version "0.78.0" + resolved "https://registry.yarnpkg.com/@glimmer/interfaces/-/interfaces-0.78.0.tgz#85274e1195775ba0e783e5c33f0d91164d3d8767" + integrity sha512-S+OfQR9gkRAzRfcuHANA5sKaID3MCm1VnGEQjyPfXi64SkyJ++j6AWZBJ7UR+36jUB9JNgHGySSCaAuB0llwCA== 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.0": + version "0.78.0" + resolved "https://registry.yarnpkg.com/@glimmer/low-level/-/low-level-0.78.0.tgz#bc8f09ba3645267a9d33a1cfb09361cd1eddc564" + integrity sha512-hxjls0NnOph/bKKyxVS8pSu/Wi17y92FBDOFXtuJPy6PA5FXMOuQmD1dMHPoWTLeDI9Artq7dV/mJYDQU4DJBA== -"@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.0": + version "0.78.0" + resolved "https://registry.yarnpkg.com/@glimmer/manager/-/manager-0.78.0.tgz#39ef004270140da4f7e6573a8b5868fc0d4085a0" + integrity sha512-rnLAIEw6ke+cbP9gDGUmgBdwQf2p82r/lNCmICeijaGhXeMUtTn6T7CSKM5kkTlcByBMPqTYPmtkVhA/V8Qazg== dependencies: - "@glimmer/destroyable" "0.77.5" + "@glimmer/destroyable" "0.78.0" "@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.0" + "@glimmer/reference" "0.78.0" + "@glimmer/util" "0.78.0" + "@glimmer/validator" "0.78.0" + +"@glimmer/node@0.78.0": + version "0.78.0" + resolved "https://registry.yarnpkg.com/@glimmer/node/-/node-0.78.0.tgz#a0c86fc70bc6b2a5d73eb708796853568c7c242b" + integrity sha512-tpL72q5kfJu6+m8SqEUdmKAeW+sQWoIyn20sq0ZYWT2pEu5VAfUBuvK8wgc5vDzu6/2WtdATXCQZPMSyMcP4fg== + dependencies: + "@glimmer/interfaces" "0.78.0" + "@glimmer/runtime" "0.78.0" + "@glimmer/util" "0.78.0" "@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.0": + version "0.78.0" + resolved "https://registry.yarnpkg.com/@glimmer/opcode-compiler/-/opcode-compiler-0.78.0.tgz#9f152ace46f3e4e6059af3dfe1fb27c0cbc4fad5" + integrity sha512-mk3mO0lbyuI0XgrkpRMM5wYwdIQAJNQufRcEN7lAPdgv03xq5OX8ReLd9xfcG+PduAx4u1lLTH6bGcEWPO4Xzg== dependencies: - "@glimmer/encoder" "0.77.5" + "@glimmer/encoder" "0.78.0" "@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.0" + "@glimmer/reference" "0.78.0" + "@glimmer/util" "0.78.0" + "@glimmer/vm" "0.78.0" + "@glimmer/wire-format" "0.78.0" -"@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.0": + version "0.78.0" + resolved "https://registry.yarnpkg.com/@glimmer/owner/-/owner-0.78.0.tgz#323ee4815f2695cd661aab98e760fff77f6fc279" + integrity sha512-qEsFrdNLuTDXnA6Uzt7W1qZqyAI6w9vWqLcwcmv8Q0jgYsICY7UfA0e50QhX8AhDHwz6dwKlo5f4kFOFYrLDbA== dependencies: - "@glimmer/util" "0.77.5" + "@glimmer/util" "0.78.0" -"@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.0": + version "0.78.0" + resolved "https://registry.yarnpkg.com/@glimmer/program/-/program-0.78.0.tgz#fcf54f2321186e1419b9a091378b6efed82ab0e9" + integrity sha512-KVUZWnIjYKrJjGpAFACXUtjWCzj8YaTzrffNfLdmTIKLF2ZMkVyyz+OHkXmkTaLN+lEyHcIXXruB6PMGSYZuzQ== dependencies: - "@glimmer/encoder" "0.77.5" + "@glimmer/encoder" "0.78.0" "@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.0" + "@glimmer/manager" "0.78.0" + "@glimmer/opcode-compiler" "0.78.0" + "@glimmer/util" "0.78.0" -"@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.0": + version "0.78.0" + resolved "https://registry.yarnpkg.com/@glimmer/reference/-/reference-0.78.0.tgz#e8f5104a22af5dd6eefcd850078f6ce83bd223fb" + integrity sha512-IBPFda7x5UfVl8UmQSG82s91+jFC31u3re5CVJrrizind79mKbA2eVGoViawkk4MtwqCEQY4Qv9JSNCiPRpIkQ== 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.0" + "@glimmer/interfaces" "0.78.0" + "@glimmer/util" "0.78.0" + "@glimmer/validator" "0.78.0" -"@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.0": + version "0.78.0" + resolved "https://registry.yarnpkg.com/@glimmer/runtime/-/runtime-0.78.0.tgz#41a802b2bd1769005782ce77bd19fa26e75c6b76" + integrity sha512-kcc9WYAS2awG3xJ8QHIjilw6jLDwcOllKU6TDqdo9Oa6XuiBJh9WMMb/2lf6EpFqZqSraYuI9DBZQ7ujdCdKTQ== dependencies: - "@glimmer/destroyable" "0.77.5" + "@glimmer/destroyable" "0.78.0" "@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.0" + "@glimmer/interfaces" "0.78.0" + "@glimmer/low-level" "0.78.0" + "@glimmer/owner" "0.78.0" + "@glimmer/program" "0.78.0" + "@glimmer/reference" "0.78.0" + "@glimmer/util" "0.78.0" + "@glimmer/validator" "0.78.0" + "@glimmer/vm" "0.78.0" + "@glimmer/wire-format" "0.78.0" "@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.0": + version "0.78.0" + resolved "https://registry.yarnpkg.com/@glimmer/syntax/-/syntax-0.78.0.tgz#b62359c0f3506f83f259caa7aafe33603fded78d" + integrity sha512-lgn3/Y1r5fVx0w0o0Qr8W58bpkt0cLpJeFH5n1uROMpSqFvlLr9/Oozx4o8XKmUOdHFSrs748ESbbhUogxYNng== dependencies: - "@glimmer/interfaces" "0.77.5" - "@glimmer/util" "0.77.5" + "@glimmer/interfaces" "0.78.0" + "@glimmer/util" "0.78.0" "@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.0": + version "0.78.0" + resolved "https://registry.yarnpkg.com/@glimmer/util/-/util-0.78.0.tgz#9ab3c55ac22d97f69e74392c98f2178df1809539" + integrity sha512-Y+m4q9QmJ5Xr6kSswUdSVWjoJrTIicAZ4iiRuw3Y3t8XllnmuNFMcypQJpIchecnvlHg+9X4xRXzxRvel5+Mhg== dependencies: "@glimmer/env" "0.1.7" - "@glimmer/interfaces" "0.77.5" + "@glimmer/interfaces" "0.78.0" "@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.0": + version "0.78.0" + resolved "https://registry.yarnpkg.com/@glimmer/validator/-/validator-0.78.0.tgz#8caf1f721936e494435009e04d00130753dbe2b1" + integrity sha512-CzPLEMAj/d+s3mlr/5iJnRn4bRbGfDy+QQKDE/4F65aC+7aaImjP7nP8Z9AZRlva9Y7t+/YlR0LgCAlXhpPbiQ== dependencies: "@glimmer/env" "^0.1.7" - "@glimmer/global-context" "0.77.5" + "@glimmer/global-context" "0.78.0" -"@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.0": + version "0.78.0" + resolved "https://registry.yarnpkg.com/@glimmer/vm-babel-plugins/-/vm-babel-plugins-0.78.0.tgz#6fc2d617664888d3815451f8ff42dbfae25a42d5" + integrity sha512-YkznZnqMQwHzFmdivSm5RfUjb6gCBreM6udzKvuflr5TcJ5QvitYt2dxvA00J10a+8HU8sarwlVSENGbd8XYGg== 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.0": + version "0.78.0" + resolved "https://registry.yarnpkg.com/@glimmer/vm/-/vm-0.78.0.tgz#ede99f998f065117efc75aee7be0d205ed7061bc" + integrity sha512-Exe9TGprShcs2m0uidYWtd4/hjxfsfrFAWsVzUYqjiT3558oSwZ0aE2W7mGVMGCq/A+OJDd/Uy1cfuw2/SgW/g== dependencies: - "@glimmer/interfaces" "0.77.5" - "@glimmer/util" "0.77.5" + "@glimmer/interfaces" "0.78.0" + "@glimmer/util" "0.78.0" -"@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.0": + version "0.78.0" + resolved "https://registry.yarnpkg.com/@glimmer/wire-format/-/wire-format-0.78.0.tgz#12ba8a03f09db536803a56e2d34995db1b254ec0" + integrity sha512-DNW6BpWiWWdbA+LfFVMM46Gy+6s1C3JB746dGJB1vLg9GZH98D4lW7tMhLRQDmJ9WXWtJ8vknRUEHWTgCs5YhQ== dependencies: - "@glimmer/interfaces" "0.77.5" - "@glimmer/util" "0.77.5" + "@glimmer/interfaces" "0.78.0" + "@glimmer/util" "0.78.0" "@handlebars/parser@~2.0.0": version "2.0.0"