Skip to content
This repository has been archived by the owner on Oct 29, 2024. It is now read-only.

Update Glimmer VM to v0.42.0 #212

Merged
merged 1 commit into from
Sep 23, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions packages/@glimmer/app-compiler/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@
"dependencies": {
"@glimmer/application": "^0.14.0-alpha.13",
"@glimmer/compiler-delegates": "^0.14.0-alpha.13",
"@glimmer/bundle-compiler": "^0.41.0",
"@glimmer/interfaces": "^0.41.0",
"@glimmer/opcode-compiler": "^0.41.0",
"@glimmer/bundle-compiler": "^0.42.0",
"@glimmer/interfaces": "^0.42.0",
"@glimmer/opcode-compiler": "^0.42.0",
"broccoli-plugin": "^1.3.0",
"debug": "^3.1.0",
"walk-sync": "^0.3.2"
Expand Down
12 changes: 6 additions & 6 deletions packages/@glimmer/application-test-helpers/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,14 @@
"module": "dist/modules/es2017/index.js",
"types": "dist/types/index.d.ts",
"dependencies": {
"@glimmer/compiler": "^0.41.0",
"@glimmer/compiler": "^0.42.0",
"@glimmer/di": "^0.1.9",
"@glimmer/env": "^0.1.7",
"@glimmer/interfaces": "^0.41.0",
"@glimmer/reference": "^0.41.0",
"@glimmer/interfaces": "^0.42.0",
"@glimmer/reference": "^0.42.0",
"@glimmer/resolver": "^0.3.0",
"@glimmer/runtime": "^0.41.0",
"@glimmer/util": "^0.41.0",
"@glimmer/wire-format": "^0.41.0"
"@glimmer/runtime": "^0.42.0",
"@glimmer/util": "^0.42.0",
"@glimmer/wire-format": "^0.42.0"
}
}
16 changes: 8 additions & 8 deletions packages/@glimmer/application/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,23 +15,23 @@
"dist"
],
"dependencies": {
"@glimmer/compiler": "^0.41.0",
"@glimmer/compiler": "^0.42.0",
"@glimmer/component": "^0.14.0-alpha.13",
"@glimmer/di": "^0.1.9",
"@glimmer/env": "^0.1.7",
"@glimmer/interfaces": "^0.41.0",
"@glimmer/opcode-compiler": "^0.41.0",
"@glimmer/reference": "^0.41.0",
"@glimmer/interfaces": "^0.42.0",
"@glimmer/opcode-compiler": "^0.42.0",
"@glimmer/reference": "^0.42.0",
"@glimmer/resolver": "^0.3.0",
"@glimmer/runtime": "^0.41.0",
"@glimmer/util": "^0.41.0",
"@glimmer/runtime": "^0.42.0",
"@glimmer/util": "^0.42.0",
"@simple-dom/interface": "^1.4.0"
},
"devDependencies": {
"@glimmer/application-test-helpers": "^0.14.0-alpha.13",
"@glimmer/bundle-compiler": "^0.41.0",
"@glimmer/bundle-compiler": "^0.42.0",
"@glimmer/component": "^0.14.0-alpha.13",
"@glimmer/wire-format": "^0.41.0",
"@glimmer/wire-format": "^0.42.0",
"@simple-dom/document": "^1.4.0",
"@simple-dom/serializer": "^1.4.0",
"@simple-dom/void-map": "^1.4.0"
Expand Down
4 changes: 2 additions & 2 deletions packages/@glimmer/application/src/helpers/user-helper.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { TagWrapper, RevisionTag } from '@glimmer/reference';
import { Tag } from '@glimmer/reference';

import { Dict, VMArguments, CapturedArguments, Helper as GlimmerHelper } from '@glimmer/interfaces';

Expand All @@ -11,7 +11,7 @@ export default function buildUserHelper(helperFunc: UserHelper): GlimmerHelper {
}

export class HelperReference extends CachedReference<unknown> {
public tag: TagWrapper<RevisionTag | null>;
public tag: Tag;
private args: CapturedArguments;

constructor(private helper: UserHelper, args: VMArguments) {
Expand Down
12 changes: 6 additions & 6 deletions packages/@glimmer/compiler-delegates/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,13 @@
"types": "dist/types/index.d.ts",
"dependencies": {
"@glimmer/application": "^0.14.0-alpha.13",
"@glimmer/bundle-compiler": "^0.41.0",
"@glimmer/bundle-compiler": "^0.42.0",
"@glimmer/component": "^0.14.0-alpha.13",
"@glimmer/interfaces": "^0.41.0",
"@glimmer/opcode-compiler": "^0.41.0",
"@glimmer/program": "^0.41.0",
"@glimmer/syntax": "^0.41.0",
"@glimmer/util": "^0.41.0",
"@glimmer/interfaces": "^0.42.0",
"@glimmer/opcode-compiler": "^0.42.0",
"@glimmer/program": "^0.42.0",
"@glimmer/syntax": "^0.42.0",
"@glimmer/util": "^0.42.0",
"@types/node": "^8.0.46",
"debug": "^3.1.0",
"glimmer-analyzer": "^0.3.3",
Expand Down
12 changes: 6 additions & 6 deletions packages/@glimmer/component/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,10 @@
"dependencies": {
"@glimmer/di": "^0.1.9",
"@glimmer/env": "^0.1.7",
"@glimmer/reference": "^0.41.0",
"@glimmer/runtime": "^0.41.0",
"@glimmer/reference": "^0.42.0",
"@glimmer/runtime": "^0.42.0",
"@glimmer/tracking": "^0.14.0-alpha.13",
"@glimmer/util": "^0.41.0",
"@glimmer/util": "^0.42.0",
"broccoli-file-creator": "^2.1.1",
"broccoli-merge-trees": "^3.0.2",
"ember-cli-babel": "^7.7.3",
Expand All @@ -48,10 +48,10 @@
"devDependencies": {
"@ember/optional-features": "^0.6.1",
"@glimmer/application-test-helpers": "^0.14.0-alpha.13",
"@glimmer/compiler": "^0.41.0",
"@glimmer/interfaces": "^0.41.0",
"@glimmer/compiler": "^0.42.0",
"@glimmer/interfaces": "^0.42.0",
"@glimmer/resolver": "^0.3.0",
"@glimmer/wire-format": "^0.41.0",
"@glimmer/wire-format": "^0.42.0",
"@types/ember": "~3.0.29",
"@types/ember-qunit": "~3.4.3",
"@types/ember-test-helpers": "~1.0.4",
Expand Down
8 changes: 4 additions & 4 deletions packages/@glimmer/component/src/component.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { metaFor, trackedGet } from '@glimmer/tracking';
import { CURRENT_TAG } from '@glimmer/reference';
import { CURRENT_TAG, update } from '@glimmer/reference';

import GlimmerComponent from '../addon/-private/component';
import { assert } from '@glimmer/util';
Expand All @@ -17,9 +17,9 @@ export default class Component<T extends object = object> extends GlimmerCompone

set args(args) {
this.__args__ = args;
metaFor(this)
.updatableTagFor('args')
.inner.update(CURRENT_TAG);
update(metaFor(this)
.updatableTagFor('args'),
CURRENT_TAG);
}

/** @private
Expand Down
24 changes: 14 additions & 10 deletions packages/@glimmer/component/src/references.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
import { dict } from '@glimmer/util';
import {
PathReference,
CONSTANT_TAG,
ConstReference,
DirtyableTag,
UpdatableTag,
combine,
isConst,
Tag,
TagWrapper,
validate,
value,
createUpdatableTag,
update,
createTag,
dirty
} from '@glimmer/reference';
import {
ConditionalReference as GlimmerConditionalReference,
Expand Down Expand Up @@ -37,9 +41,9 @@ export abstract class CachedReference<T> extends ComponentPathReference<T> {
value() {
let { tag, _lastRevision, _lastValue } = this;

if (!_lastRevision || !tag.validate(_lastRevision)) {
if (!_lastRevision || !validate(tag, _lastRevision)) {
_lastValue = this._lastValue = this.compute();
this._lastRevision = tag.value();
this._lastRevision = value(tag);
}

return _lastValue;
Expand Down Expand Up @@ -95,14 +99,14 @@ export class RootPropertyReference extends PropertyReference {
export class NestedPropertyReference extends PropertyReference {
public tag: Tag;
private _parentReference: PathReference<any>;
private _parentObjectTag: TagWrapper<UpdatableTag>;
private _parentObjectTag: UpdatableTag;
private _propertyKey: string;

constructor(parentReference: PathReference<any>, propertyKey: string) {
super();

let parentReferenceTag = parentReference.tag;
let parentObjectTag = UpdatableTag.create(CONSTANT_TAG);
let parentObjectTag = createUpdatableTag();

this._parentReference = parentReference;
this._parentObjectTag = parentObjectTag;
Expand All @@ -116,7 +120,7 @@ export class NestedPropertyReference extends PropertyReference {

let parentValue = _parentReference.value();

_parentObjectTag.inner.update(tagForProperty(parentValue, _propertyKey));
update(_parentObjectTag, tagForProperty(parentValue, _propertyKey));

if (typeof parentValue === 'string' && _propertyKey === 'length') {
return parentValue.length;
Expand All @@ -131,13 +135,13 @@ export class NestedPropertyReference extends PropertyReference {
}

export class UpdatableReference<T> extends ComponentPathReference<T> {
public tag: TagWrapper<DirtyableTag>;
public tag: DirtyableTag;
private _value: T;

constructor(value: T) {
super();

this.tag = DirtyableTag.create();
this.tag = createTag();
this._value = value;
}

Expand All @@ -149,7 +153,7 @@ export class UpdatableReference<T> extends ComponentPathReference<T> {
let { _value } = this;

if (value !== _value) {
this.tag.inner.dirty();
dirty(this.tag);
this._value = value;
}
}
Expand Down
8 changes: 4 additions & 4 deletions packages/@glimmer/ssr/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@
"@glimmer/application": "^0.14.0-alpha.13",
"@glimmer/component": "^0.14.0-alpha.13",
"@glimmer/di": "^0.1.9",
"@glimmer/node": "^0.41.0",
"@glimmer/reference": "^0.41.0",
"@glimmer/runtime": "^0.41.0",
"@glimmer/util": "^0.41.0",
"@glimmer/node": "^0.42.0",
"@glimmer/reference": "^0.42.0",
"@glimmer/runtime": "^0.42.0",
"@glimmer/util": "^0.42.0",
"@simple-dom/document": "^1.4.0",
"@simple-dom/serializer": "^1.4.0",
"@simple-dom/void-map": "^1.4.0"
Expand Down
12 changes: 6 additions & 6 deletions packages/@glimmer/tracking/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,15 @@
"dependencies": {
"@glimmer/di": "^0.1.9",
"@glimmer/env": "^0.1.7",
"@glimmer/reference": "^0.41.0",
"@glimmer/runtime": "^0.41.0",
"@glimmer/util": "^0.41.0"
"@glimmer/reference": "^0.42.0",
"@glimmer/runtime": "^0.42.0",
"@glimmer/util": "^0.42.0"
},
"devDependencies": {
"@glimmer/application-test-helpers": "^0.14.0-alpha.13",
"@glimmer/compiler": "^0.41.0",
"@glimmer/interfaces": "^0.41.0",
"@glimmer/compiler": "^0.42.0",
"@glimmer/interfaces": "^0.42.0",
"@glimmer/resolver": "^0.3.0",
"@glimmer/wire-format": "^0.41.0"
"@glimmer/wire-format": "^0.42.0"
}
}
36 changes: 17 additions & 19 deletions packages/@glimmer/tracking/src/tracked.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,13 @@ import {
Tag,
DirtyableTag,
UpdatableTag,
TagWrapper,
combine,
CONSTANT_TAG,
bump
bump,
dirty,
createTag,
createUpdatableTag,
update,
} from '@glimmer/reference';
import { dict, assert } from '@glimmer/util';
import { Option, Dict } from '@glimmer/interfaces';
Expand Down Expand Up @@ -147,7 +150,7 @@ function descriptorForField(
): DecoratorPropertyDescriptor {
assert(
!desc || (!desc.value && !desc.get && !desc.set),
`You attempted to use @tracked on ${key}, but that element is not a class field. @tracked is only usable on class fields. Native getters and setters will autotrack add any tracked fields they encounter, so there is no need mark getters and setters with @tracked.`,
`You attempted to use @tracked on ${key}, but that element is not a class field. @tracked is only usable on class fields. Native getters and setters will autotrack add any tracked fields they encounter, so there is no need mark getters and setters with @tracked.`
);

const meta = metaFor(target);
Expand Down Expand Up @@ -178,9 +181,7 @@ function descriptorForField(
},

set(newValue: any): void {
(metaFor(this)
.tagFor(key)
.inner as any as DirtyableTag).dirty();
dirty(metaFor(this).tagFor(key) as DirtyableTag);

values.set(this, newValue);
propertyDidChange();
Expand Down Expand Up @@ -217,20 +218,17 @@ function descriptorForTrackedComputedProperty(
if (CURRENT_TRACKER) CURRENT_TRACKER.add(tag);
// Update the UpdatableTag for this property with the tag for all of the
// consumed dependencies.
metaFor(this)
.updatableTagFor(key)
.inner.update(tag);
update(metaFor(this).updatableTagFor(key), tag);

return ret;
}

function setter(this: object) {
bump();
let tag = createTag();
dirty(tag);

// Mark the UpdatableTag for this property with the current tag.
metaFor(this)
.updatableTagFor(key)
.inner.update(DirtyableTag.create());
update(metaFor(this).updatableTagFor(key), tag);
set.apply(this, arguments);
}

Expand Down Expand Up @@ -264,13 +262,13 @@ export function trackedGet(obj: Object, key: string) {
*/
export default class Meta {
tags: Dict<Tag>;
computedPropertyTags: Dict<TagWrapper<UpdatableTag>>;
computedPropertyTags: Dict<UpdatableTag>;
trackedProperties: Dict<boolean>;
trackedComputedProperties: Dict<boolean>;

constructor(parent: Meta) {
this.tags = dict<Tag>();
this.computedPropertyTags = dict<TagWrapper<UpdatableTag>>();
this.computedPropertyTags = dict<UpdatableTag>();
this.trackedProperties = parent ? Object.create(parent.trackedProperties) : dict<boolean>();
this.trackedComputedProperties = parent
? Object.create(parent.trackedComputedProperties)
Expand All @@ -293,10 +291,10 @@ export default class Meta {
}

if (this.trackedComputedProperties[key]) {
return (this.tags[key] = UpdatableTag.create(CONSTANT_TAG));
return (this.tags[key] = createUpdatableTag());
}

return (this.tags[key] = DirtyableTag.create());
return (this.tags[key] = createTag());
}

/**
Expand All @@ -305,8 +303,8 @@ export default class Meta {
* For computed properties, it is the UpdatableTag used as one of the tags in
* the tag combinator of the CP and its dependencies.
*/
updatableTagFor(key: Key): TagWrapper<UpdatableTag> {
return this.tags[key] as TagWrapper<UpdatableTag> || (this.tags[key] = UpdatableTag.create(CONSTANT_TAG));
updatableTagFor(key: Key): UpdatableTag {
return (this.tags[key] as UpdatableTag) || (this.tags[key] = createUpdatableTag());
}
}

Expand Down
4 changes: 2 additions & 2 deletions packages/@glimmer/tracking/test/browser/helpers/tags.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { bump, Tag } from '@glimmer/reference';
import { bump, Tag, validate } from '@glimmer/reference';

export function assertValidAfterUnrelatedBump(tag: Tag, snapshot: number) {
bump();

QUnit.assert.strictEqual(
tag.validate(snapshot),
validate(tag, snapshot),
true,
'tag is still valid after an unrelated bump'
);
Expand Down
Loading