Skip to content

Commit

Permalink
Merge pull request #19416 from emberjs/bugfix/update-glimmer-vm-to-0-77
Browse files Browse the repository at this point in the history
  • Loading branch information
rwjblue authored Feb 18, 2021
2 parents 3a2bf47 + e37a265 commit 3bcef17
Show file tree
Hide file tree
Showing 17 changed files with 250 additions and 274 deletions.
26 changes: 13 additions & 13 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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.76.0",
"@glimmer/vm-babel-plugins": "0.77.1",
"babel-plugin-debug-macros": "^0.3.3",
"babel-plugin-filter-imports": "^4.0.0",
"broccoli-concat": "^4.2.4",
Expand All @@ -75,19 +75,19 @@
},
"devDependencies": {
"@babel/preset-env": "^7.9.5",
"@glimmer/compiler": "0.76.0",
"@glimmer/compiler": "0.77.1",
"@glimmer/env": "^0.1.7",
"@glimmer/global-context": "0.76.0",
"@glimmer/interfaces": "0.76.0",
"@glimmer/manager": "0.76.0",
"@glimmer/destroyable": "0.76.0",
"@glimmer/owner": "0.76.0",
"@glimmer/node": "0.76.0",
"@glimmer/opcode-compiler": "0.76.0",
"@glimmer/program": "0.76.0",
"@glimmer/reference": "0.76.0",
"@glimmer/runtime": "0.76.0",
"@glimmer/validator": "0.76.0",
"@glimmer/global-context": "0.77.1",
"@glimmer/interfaces": "0.77.1",
"@glimmer/manager": "0.77.1",
"@glimmer/destroyable": "0.77.1",
"@glimmer/owner": "0.77.1",
"@glimmer/node": "0.77.1",
"@glimmer/opcode-compiler": "0.77.1",
"@glimmer/program": "0.77.1",
"@glimmer/reference": "0.77.1",
"@glimmer/runtime": "0.77.1",
"@glimmer/validator": "0.77.1",
"@simple-dom/document": "^1.4.0",
"@types/qunit": "^2.9.1",
"@types/rsvp": "^4.0.3",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import { assert } from '@ember/debug';
import { DEBUG } from '@glimmer/env';
import { Helper, VMArguments } from '@glimmer/interfaces';
import { CapturedArguments, Helper } from '@glimmer/interfaces';
import { createComputeRef, valueForRef } from '@glimmer/reference';
import { internalHelper } from './internal-helper';

let helper: Helper;

if (DEBUG) {
helper = (args: VMArguments) => {
let inner = args.positional.at(0);
helper = (args: CapturedArguments) => {
let inner = args.positional[0];

return createComputeRef(() => {
let value = valueForRef(inner);
Expand All @@ -22,7 +22,7 @@ if (DEBUG) {
});
};
} else {
helper = (args: VMArguments) => args.positional.at(0);
helper = (args: CapturedArguments) => args.positional[0];
}

export default internalHelper(helper);
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
import { dasherize } from '@ember/string';
import { VMArguments } from '@glimmer/interfaces';
import { CapturedArguments } from '@glimmer/interfaces';
import { createComputeRef, valueForRef } from '@glimmer/reference';
import { internalHelper } from './internal-helper';

export default internalHelper((args: VMArguments) => {
let positional = args.positional.capture();

export default internalHelper(({ positional }: CapturedArguments) => {
return createComputeRef(() => {
let classNameParts = (valueForRef(positional[0]) as string).split('.');
let className = classNameParts[classNameParts.length - 1];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
*/
import { tagForProperty } from '@ember/-internals/metal';
import { isObject } from '@ember/-internals/utils';
import { VMArguments } from '@glimmer/interfaces';
import { CapturedArguments } from '@glimmer/interfaces';
import { createComputeRef, valueForRef } from '@glimmer/reference';
import { consumeTag } from '@glimmer/validator';
import { internalHelper } from './internal-helper';
Expand All @@ -13,8 +13,8 @@ import { internalHelper } from './internal-helper';
updates to `{{each}}` when it changes. It is put into place by a template
transform at build time, similar to the (-each-in) helper
*/
export default internalHelper((args: VMArguments) => {
let inner = args.positional.at(0);
export default internalHelper(({ positional }: CapturedArguments) => {
let inner = positional[0];

return createComputeRef(() => {
let iterable = valueForRef(inner);
Expand Down
13 changes: 5 additions & 8 deletions packages/@ember/-internals/glimmer/lib/helpers/action.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { assert, deprecate } from '@ember/debug';
import { flaggedInstrument } from '@ember/instrumentation';
import { join } from '@ember/runloop';
import { DEBUG } from '@glimmer/env';
import { VMArguments } from '@glimmer/interfaces';
import { CapturedArguments } from '@glimmer/interfaces';
import {
createUnboundRef,
isInvokableRef,
Expand Down Expand Up @@ -285,21 +285,18 @@ export const INVOKE: unique symbol = symbol('INVOKE') as any;
@public
*/
export default internalHelper(
(args: VMArguments): Reference<Function> => {
(args: CapturedArguments): Reference<Function> => {
let { named, positional } = args;

let capturedArgs = positional.capture();

// The first two argument slots are reserved.
// pos[0] is the context (or `this`)
// pos[1] is the action name or function
// Anything else is an action argument.
let [context, action, ...restArgs] = capturedArgs;
let [context, action, ...restArgs] = positional;

let debugKey: string = action.debugLabel!;

let target = named.has('target') ? named.get('target') : context;
let processArgs = makeArgsProcessor(named.has('value') && named.get('value'), restArgs);
let target = 'target' in named ? named.target : context;
let processArgs = makeArgsProcessor('value' in named && named.value, restArgs);

let fn: Function;

Expand Down
6 changes: 3 additions & 3 deletions packages/@ember/-internals/glimmer/lib/helpers/each-in.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import { tagForObject } from '@ember/-internals/metal';
import { _contentFor } from '@ember/-internals/runtime';
import { isProxy } from '@ember/-internals/utils';
import { VMArguments } from '@glimmer/interfaces';
import { CapturedArguments } from '@glimmer/interfaces';
import { createComputeRef, valueForRef } from '@glimmer/reference';
import { consumeTag } from '@glimmer/validator';
import { internalHelper } from './internal-helper';
Expand Down Expand Up @@ -159,8 +159,8 @@ export class EachInWrapper {
constructor(public inner: unknown) {}
}

export default internalHelper((args: VMArguments) => {
let inner = args.positional.at(0);
export default internalHelper(({ positional }: CapturedArguments) => {
let inner = positional[0];

return createComputeRef(() => {
let iterable = valueForRef(inner);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { Owner } from '@ember/-internals/owner';
import { Helper, HelperDefinitionState } from '@glimmer/interfaces';
import { setInternalHelperManager } from '@glimmer/manager';

export function internalHelper(helper: Helper): HelperDefinitionState {
export function internalHelper(helper: Helper<Owner>): HelperDefinitionState {
return setInternalHelperManager(helper, {});
}
6 changes: 3 additions & 3 deletions packages/@ember/-internals/glimmer/lib/helpers/mut.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
@module ember
*/
import { assert } from '@ember/debug';
import { VMArguments } from '@glimmer/interfaces';
import { CapturedArguments } from '@glimmer/interfaces';
import { createInvokableRef, isUpdatableRef } from '@glimmer/reference';
import { internalHelper } from './internal-helper';

Expand Down Expand Up @@ -80,8 +80,8 @@ import { internalHelper } from './internal-helper';
@public
*/

export default internalHelper((args: VMArguments) => {
let ref = args.positional.at(0);
export default internalHelper(({ positional }: CapturedArguments) => {
let ref = positional[0];

// TODO: Improve this error message. This covers at least two distinct
// cases:
Expand Down
6 changes: 2 additions & 4 deletions packages/@ember/-internals/glimmer/lib/helpers/query-param.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import { QueryParams } from '@ember/-internals/routing';
import { assert, deprecate } from '@ember/debug';
import { assign } from '@ember/polyfills';
import { VMArguments } from '@glimmer/interfaces';
import { CapturedArguments } from '@glimmer/interfaces';
import { createComputeRef } from '@glimmer/reference';
import { reifyNamed } from '@glimmer/runtime';
import { internalHelper } from './internal-helper';
Expand All @@ -30,9 +30,7 @@ import { internalHelper } from './internal-helper';
@return {Object} A `QueryParams` object for `{{link-to}}`
@public
*/
export default internalHelper((args: VMArguments) => {
let { positional, named } = args.capture();

export default internalHelper(({ positional, named }: CapturedArguments) => {
return createComputeRef(() => {
assert(
"The `query-params` helper only accepts named arguments, e.g. (query-params queryParamPropertyName='foo') as opposed to (query-params 'foo')",
Expand Down
6 changes: 3 additions & 3 deletions packages/@ember/-internals/glimmer/lib/helpers/readonly.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/**
@module ember
*/
import { VMArguments } from '@glimmer/interfaces';
import { CapturedArguments } from '@glimmer/interfaces';
import { createReadOnlyRef } from '@glimmer/reference';
import { internalHelper } from './internal-helper';

Expand Down Expand Up @@ -120,6 +120,6 @@ import { internalHelper } from './internal-helper';
@for Ember.Templates.helpers
@private
*/
export default internalHelper((args: VMArguments) => {
return createReadOnlyRef(args.positional.at(0));
export default internalHelper(({ positional }: CapturedArguments) => {
return createReadOnlyRef(positional[0]);
});
8 changes: 4 additions & 4 deletions packages/@ember/-internals/glimmer/lib/helpers/unbound.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
*/

import { assert } from '@ember/debug';
import { VMArguments } from '@glimmer/interfaces';
import { CapturedArguments } from '@glimmer/interfaces';
import { createUnboundRef, valueForRef } from '@glimmer/reference';
import { internalHelper } from './internal-helper';

Expand Down Expand Up @@ -35,11 +35,11 @@ import { internalHelper } from './internal-helper';
@public
*/

export default internalHelper((args: VMArguments) => {
export default internalHelper(({ positional, named }: CapturedArguments) => {
assert(
'unbound helper cannot be called with multiple params or hash params',
args.positional.length === 1 && args.named.length === 0
positional.length === 1 && Object.keys(named).length === 0
);

return createUnboundRef(valueForRef(args.positional.at(0)), '(resurt of an `unbound` helper)');
return createUnboundRef(valueForRef(positional[0]), '(resurt of an `unbound` helper)');
});
23 changes: 7 additions & 16 deletions packages/@ember/-internals/glimmer/lib/modifiers/action.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,10 @@ import { join } from '@ember/runloop';
import { registerDestructor } from '@glimmer/destroyable';
import { DEBUG } from '@glimmer/env';
import {
CapturedArguments,
CapturedNamedArguments,
CapturedPositionalArguments,
DynamicScope,
GlimmerTreeChanges,
InternalModifierManager,
VMArguments,
} from '@glimmer/interfaces';
import { setInternalModifierManager } from '@glimmer/manager';
import { isInvokableRef, updateRef, valueForRef } from '@glimmer/reference';
Expand Down Expand Up @@ -73,7 +71,6 @@ export class ActionState {
public namedArgs: CapturedNamedArguments;
public positional: CapturedPositionalArguments;
public implicitTarget: any;
public dom: GlimmerTreeChanges;
public eventName: any;
public tag = createUpdatableTag();

Expand All @@ -82,15 +79,13 @@ export class ActionState {
actionId: number,
actionArgs: any[],
namedArgs: CapturedNamedArguments,
positionalArgs: CapturedPositionalArguments,
dom: GlimmerTreeChanges
positionalArgs: CapturedPositionalArguments
) {
this.element = element;
this.actionId = actionId;
this.actionArgs = actionArgs;
this.namedArgs = namedArgs;
this.positional = positionalArgs;
this.dom = dom;
this.eventName = this.getEventName();

registerDestructor(this, () => ActionHelper.unregisterAction(this));
Expand Down Expand Up @@ -208,12 +203,8 @@ class ActionModifierManager implements InternalModifierManager<ActionState, obje
_owner: Owner,
element: SimpleElement,
_state: object,
args: VMArguments,
_dynamicScope: DynamicScope,
dom: GlimmerTreeChanges
{ named, positional }: CapturedArguments
): ActionState {
let { named, positional } = args.capture();

let actionArgs: any[] = [];
// The first two arguments are (1) `this` and (2) the action name.
// Everything else is a param.
Expand All @@ -222,7 +213,7 @@ class ActionModifierManager implements InternalModifierManager<ActionState, obje
}

let actionId = uuid();
let actionState = new ActionState(element, actionId, actionArgs, named, positional, dom);
let actionState = new ActionState(element, actionId, actionArgs, named, positional);

deprecate(
`Using the \`{{action}}\` modifier with \`${actionState.eventName}\` events has been deprecated.`,
Expand All @@ -248,7 +239,7 @@ class ActionModifierManager implements InternalModifierManager<ActionState, obje
}

install(actionState: ActionState): void {
let { dom, element, actionId, positional } = actionState;
let { element, actionId, positional } = actionState;

let actionName;
let actionNameRef: any;
Expand Down Expand Up @@ -288,8 +279,8 @@ class ActionModifierManager implements InternalModifierManager<ActionState, obje

ActionHelper.registerAction(actionState);

dom.setAttribute(element, 'data-ember-action', '');
dom.setAttribute(element, `data-ember-action-${actionId}`, String(actionId));
element.setAttribute('data-ember-action', '');
element.setAttribute(`data-ember-action-${actionId}`, String(actionId));
}

update(actionState: ActionState): void {
Expand Down
5 changes: 2 additions & 3 deletions packages/@ember/-internals/glimmer/lib/modifiers/internal.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import {
CapturedArguments,
Destroyable,
InternalModifierManager as ModifierManager,
VMArguments,
} from '@glimmer/interfaces';
import { valueForRef } from '@glimmer/reference';
import { SimpleElement } from '@simple-dom/interface';
Expand Down Expand Up @@ -60,12 +59,12 @@ export class InternalModifierManager
owner: Owner,
element: SimpleElement,
_definition: unknown,
args: VMArguments
args: CapturedArguments
): InternalModifierState {
assert('element must be an HTMLElement', element instanceof HTMLElement);

let { ModifierClass } = this;
let instance = new ModifierClass(owner, element, args.capture());
let instance = new ModifierClass(owner, element, args);

registerDestructor(instance, destructor);

Expand Down
Loading

0 comments on commit 3bcef17

Please sign in to comment.