From ad87031a187aab9895ed49dea82e16bd753fcdbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gast=C3=B3n=20I=2E=20Silva?= Date: Fri, 28 Sep 2018 03:31:55 -0700 Subject: [PATCH 1/2] updates towards noImplicitAny --- package.json | 3 +- .../app-compiler/src/bundle-compiler.ts | 20 ++++++++-- .../test/node/bundle-compiler-test.ts | 6 +-- .../src/app-builder.ts | 6 ++- .../src/render-test.ts | 9 ++++- .../@glimmer/application/src/dynamic-scope.ts | 8 +++- .../application/src/helpers/action.ts | 2 +- .../application/src/helpers/user-helper.ts | 2 +- packages/@glimmer/application/src/iterable.ts | 4 +- .../src/loaders/bytecode/loader.ts | 8 ++-- .../application/test/browser/action-test.ts | 6 +-- .../test/browser/application-as-owner-test.ts | 14 ++++--- .../test/browser/environment-test.ts | 2 +- .../test/browser/render-component-test.ts | 20 +++++----- .../src/module-unification/code-generator.ts | 9 +++-- .../test/node/application-smoke-test.ts | 2 +- packages/@glimmer/component/src/tracked.ts | 10 ++--- .../component/test/browser/component-test.ts | 2 +- .../test/browser/lifecycle-hook-test.ts | 2 +- tsconfig.json | 3 +- yarn.lock | 38 +++++++++++++++++++ 21 files changed, 123 insertions(+), 53 deletions(-) diff --git a/package.json b/package.json index 6baf41225..790765fc1 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "rollup": "^0.41.6", "rollup-plugin-node-resolve": "^3.0.0", "rollup-plugin-sourcemaps": "^0.4.2", + "rollup-plugin-typescript2": "^0.17.0", "semver": "^5.3.0", "simple-dom": "^1.2.0", "simple-html-tokenizer": "^0.5.3", @@ -66,4 +67,4 @@ "deprecation": ":warning: Deprecation" } } -} \ No newline at end of file +} diff --git a/packages/@glimmer/app-compiler/src/bundle-compiler.ts b/packages/@glimmer/app-compiler/src/bundle-compiler.ts index 22fd596ac..1b14e021d 100644 --- a/packages/@glimmer/app-compiler/src/bundle-compiler.ts +++ b/packages/@glimmer/app-compiler/src/bundle-compiler.ts @@ -8,6 +8,18 @@ import { mainTemplate } from '@glimmer/application'; import { CompilableProgram } from '@glimmer/opcode-compiler'; import { Opaque } from '@glimmer/util'; import { AppCompilerDelegateOptions } from '@glimmer/compiler-delegates'; +import { TempDir } from 'broccoli-test-helper'; + +// https://github.com/joliss/node-walk-sync/blob/984a2d6adf9facc1531fb325852f475eb260781d/index.d.ts +export class WalkSyncEntry { + relativePath: string; + basePath: string; + fullPath: string; + mode: number; + size: number; + mtime: Date; + isDirectory: Function; +} export type CompilerMode = 'module-unification'; @@ -29,7 +41,7 @@ export default class GlimmerBundleCompiler extends Plugin { outputPath: string; compiler: BundleCompiler; private delegate: AppCompilerDelegate; - constructor(inputNode, options: GlimmerBundleCompilerOptions) { + constructor(inputNode: TempDir|string, options: GlimmerBundleCompilerOptions) { super([inputNode], options); this.options = this.defaultOptions(options); } @@ -47,12 +59,12 @@ export default class GlimmerBundleCompiler extends Plugin { }, options); } - listEntries() { + listEntries(): WalkSyncEntry[] { let [srcPath] = this.inputPaths; return walkSync.entries(srcPath); } - _readFile(file) { + _readFile(file: string) { return readFileSync(join(this.inputPaths[0], file), 'UTF-8'); } @@ -88,7 +100,7 @@ export default class GlimmerBundleCompiler extends Plugin { let [projectPath] = this.inputPaths; - this.listEntries().forEach(entry => { + this.listEntries().forEach((entry: WalkSyncEntry) => { let { relativePath } = entry; if (entry.isDirectory()) { mkdirSync(join(outputPath, relativePath)); diff --git a/packages/@glimmer/app-compiler/test/node/bundle-compiler-test.ts b/packages/@glimmer/app-compiler/test/node/bundle-compiler-test.ts index 38d3bfcf6..356ed5762 100644 --- a/packages/@glimmer/app-compiler/test/node/bundle-compiler-test.ts +++ b/packages/@glimmer/app-compiler/test/node/bundle-compiler-test.ts @@ -1,10 +1,10 @@ import { GlimmerBundleCompiler } from '@glimmer/app-compiler'; -import { createTempDir, buildOutput } from 'broccoli-test-helper'; +import { createTempDir, buildOutput, TempDir, Tree } from 'broccoli-test-helper'; const { module, test } = QUnit; module('Broccol Glimmer Bundle Compiler', function(hooks) { - let input = null; + let input:TempDir = null; hooks.beforeEach(() => createTempDir().then(tempDir => (input = tempDir))); @@ -53,7 +53,7 @@ module('Broccol Glimmer Bundle Compiler', function(hooks) { }); let output = await buildOutput(compiler); - let files = output.read(); + let files: Tree = output.read(); assert.deepEqual(Object.keys(files).sort(), ['src', 'package.json', 'templates.gbx', 'data-segment.js'].sort()); assert.deepEqual(Object.keys(files['src']).sort(), ['ui'].sort()); diff --git a/packages/@glimmer/application-test-helpers/src/app-builder.ts b/packages/@glimmer/application-test-helpers/src/app-builder.ts index 47423b196..c909bd5f6 100644 --- a/packages/@glimmer/application-test-helpers/src/app-builder.ts +++ b/packages/@glimmer/application-test-helpers/src/app-builder.ts @@ -13,6 +13,7 @@ import { BundleCompiler, CompilerDelegate as ICompilerDelegate } from '@glimmer/ import { buildAction, mainTemplate } from '@glimmer/application'; import { CompilableProgram } from '@glimmer/opcode-compiler'; import { Cursor } from '@glimmer/runtime'; +import { Metadata } from '../../application/src/loaders/bytecode/loader'; import didRender from './did-render'; @@ -119,9 +120,10 @@ export class AppBuilder { let { heap, pool, table } = compiler.compile(); let resolverTable: Opaque[] = []; - let meta = {}; - table.vmHandleByModuleLocator.forEach((vmHandle, locator) => { + let meta: Dict = {}; + + table.vmHandleByModuleLocator.forEach((vmHandle , locator) => { let handle = table.byModuleLocator.get(locator); let template = compiler.compilableTemplates.get(locator); diff --git a/packages/@glimmer/application-test-helpers/src/render-test.ts b/packages/@glimmer/application-test-helpers/src/render-test.ts index 77c058718..235f26fad 100644 --- a/packages/@glimmer/application-test-helpers/src/render-test.ts +++ b/packages/@glimmer/application-test-helpers/src/render-test.ts @@ -36,15 +36,20 @@ export class RenderTest { } function setTestingDescriptor(descriptor: PropertyDescriptor): void { - let testFunction = descriptor.value as Function; + let testFunction:TestFunction = descriptor.value as TestFunction; descriptor.enumerable = true; testFunction['isTest'] = true; } export interface TestMeta { + [key: string]: any; debug?: boolean; } +export interface TestFunction { + [key: string]: boolean; +} + export function test(meta: TestMeta): MethodDecorator; export function test( _target: Object | TestMeta, @@ -55,7 +60,7 @@ export function test(...args: any[]) { if (args.length === 1) { let meta: TestMeta = args[0]; return (_target: Object, _name: string, descriptor: PropertyDescriptor) => { - let testFunction = descriptor.value as Function; + let testFunction: TestFunction = descriptor.value as TestFunction; Object.keys(meta).forEach(key => (testFunction[key] = meta[key])); setTestingDescriptor(descriptor); }; diff --git a/packages/@glimmer/application/src/dynamic-scope.ts b/packages/@glimmer/application/src/dynamic-scope.ts index 42cf4e7f8..a61e5c0b4 100644 --- a/packages/@glimmer/application/src/dynamic-scope.ts +++ b/packages/@glimmer/application/src/dynamic-scope.ts @@ -9,10 +9,14 @@ import { PathReference } from '@glimmer/reference'; +interface Bucket { + [key: string]: PathReference; +} + export default class DynamicScope implements GlimmerDynamicScope { - private bucket; + private bucket: Bucket; - constructor(bucket=null) { + constructor(bucket: Bucket = null) { if (bucket) { this.bucket = assign({}, bucket); } else { diff --git a/packages/@glimmer/application/src/helpers/action.ts b/packages/@glimmer/application/src/helpers/action.ts index 9faf3081b..3564b00d3 100644 --- a/packages/@glimmer/application/src/helpers/action.ts +++ b/packages/@glimmer/application/src/helpers/action.ts @@ -12,7 +12,7 @@ export default function buildAction(vm: VM, _args: Arguments) { throwNoActionError(actionFunc, args.positional.at(0)); } - return new UpdatableReference(function action(...invokedArgs) { + return new UpdatableReference(function action(...invokedArgs: any[]) { let curriedArgs = args.positional.value(); // Consume the action function that was already captured above. curriedArgs.shift(); diff --git a/packages/@glimmer/application/src/helpers/user-helper.ts b/packages/@glimmer/application/src/helpers/user-helper.ts index 72997864c..2f5d684d0 100644 --- a/packages/@glimmer/application/src/helpers/user-helper.ts +++ b/packages/@glimmer/application/src/helpers/user-helper.ts @@ -21,7 +21,7 @@ import { export type UserHelper = (args: ReadonlyArray, named: Dict) => any; -export default function buildUserHelper(helperFunc): GlimmerHelper { +export default function buildUserHelper(helperFunc: UserHelper): GlimmerHelper { return (_vm: VM, args: Arguments) => new HelperReference(helperFunc, args); } diff --git a/packages/@glimmer/application/src/iterable.ts b/packages/@glimmer/application/src/iterable.ts index 65f3349ae..5bc537e7f 100644 --- a/packages/@glimmer/application/src/iterable.ts +++ b/packages/@glimmer/application/src/iterable.ts @@ -110,8 +110,8 @@ export default class Iterable implements AbstractIterable 0 ? new ArrayIterator(array, keyFor) : EMPTY_ITERATOR; diff --git a/packages/@glimmer/application/src/loaders/bytecode/loader.ts b/packages/@glimmer/application/src/loaders/bytecode/loader.ts index 4f96fd35c..270cd852b 100644 --- a/packages/@glimmer/application/src/loaders/bytecode/loader.ts +++ b/packages/@glimmer/application/src/loaders/bytecode/loader.ts @@ -15,12 +15,14 @@ export interface SerializedHeap { } export interface Metadata { + [key: string]: number | ProgramSymbolTable; + /** VM handle */ - v: number; + v?: number; /** Handle */ - h: number; + h?: number; - table: ProgramSymbolTable; + table?: ProgramSymbolTable; } /** diff --git a/packages/@glimmer/application/test/browser/action-test.ts b/packages/@glimmer/application/test/browser/action-test.ts index 404c9231b..2ef8e4c24 100644 --- a/packages/@glimmer/application/test/browser/action-test.ts +++ b/packages/@glimmer/application/test/browser/action-test.ts @@ -22,7 +22,7 @@ test('can curry arguments to actions', async function(assert) { helloWorldComponent = this; } - userDidClick(msg1, msg2, event) { + userDidClick(msg1: string, msg2: string, event: Event) { passedMsg1 = msg1; passedMsg2 = msg2; passedEvent = event; @@ -67,7 +67,7 @@ test('actions can be passed and invoked with additional arguments', async functi type: 'click' }; let parentComponent: ParentComponent; - let passed = []; + let passed: any[] = []; class ParentComponent extends Component { name = "world"; @@ -77,7 +77,7 @@ test('actions can be passed and invoked with additional arguments', async functi parentComponent = this; } - userDidClick(a1, a2, a3, a4, a5, a6, evt) { + userDidClick(a1: number, a2: number, a3: number, a4: number, a5: number, a6: number, evt: Event) { passed = [a1, a2, a3, a4, a5, a6, evt]; assert.strictEqual(this, parentComponent, 'function context is preserved'); } diff --git a/packages/@glimmer/application/test/browser/application-as-owner-test.ts b/packages/@glimmer/application/test/browser/application-as-owner-test.ts index bd6391539..70807db92 100644 --- a/packages/@glimmer/application/test/browser/application-as-owner-test.ts +++ b/packages/@glimmer/application/test/browser/application-as-owner-test.ts @@ -5,6 +5,10 @@ const { module, test } = QUnit; module('[@glimmer/application] Owner interface'); +interface FooBarClass { + [key: string]: any; +} + test('#identify - uses a resolver to convert a relative specifier to an absolute specifier', function(assert) { assert.expect(2); @@ -120,7 +124,7 @@ test('#lookup - returns an instance created by the factory', function(assert) { let instance = { foo: 'bar' }; class FooBar { - static create(injections) { + static create(injections: Object) { assert.ok(true, 'Factory#create invoked'); assert.strictEqual(getOwner(injections), app, 'owner is included in injections'); return instance; @@ -248,11 +252,11 @@ test('#lookup - uses the resolver to locate a registration', function(assert) { test('#lookup - injects references registered by name', function(assert) { assert.expect(5); - let instance = { foo: 'bar' }; + let instance: FooBarClass = { foo: 'bar' }; let router = { name: 'router' }; class FooBar { - static create(injections) { + static create(injections: FooBarClass) { assert.ok(true, 'FooBarFactory#create invoked'); assert.strictEqual(injections['router'], router, 'expected injections passed to factory'); instance['router'] = injections['router']; @@ -286,11 +290,11 @@ test('#lookup - injects references registered by name', function(assert) { test('#lookup - injects references registered by type', function(assert) { assert.expect(5); - let instance = { foo: 'bar' }; + let instance: FooBarClass = { foo: 'bar' }; let router = { name: 'router' }; class FooBar { - static create(injections) { + static create(injections: FooBarClass) { assert.ok(true, 'FooBarFactory#create invoked'); assert.strictEqual(injections['router'], router, 'expected injections passed to factory'); instance['router'] = injections['router']; diff --git a/packages/@glimmer/application/test/browser/environment-test.ts b/packages/@glimmer/application/test/browser/environment-test.ts index 22c4d6492..eb30ef838 100644 --- a/packages/@glimmer/application/test/browser/environment-test.ts +++ b/packages/@glimmer/application/test/browser/environment-test.ts @@ -172,7 +172,7 @@ test('can render a custom helper that takes args', async function(assert) { } let app = await buildApp() - .helper('greeting', (params) => `Hello ${params[0]} ${params[1]}!`) + .helper('greeting', (params: string[]) => `Hello ${params[0]} ${params[1]}!`) .template('Main', '
{{greeting firstName lastName}}
') .component('Main', MainComponent) .boot(); diff --git a/packages/@glimmer/application/test/browser/render-component-test.ts b/packages/@glimmer/application/test/browser/render-component-test.ts index bca0bd747..108a27598 100644 --- a/packages/@glimmer/application/test/browser/render-component-test.ts +++ b/packages/@glimmer/application/test/browser/render-component-test.ts @@ -4,7 +4,7 @@ import Component, { tracked } from '@glimmer/component'; import '../helpers/async'; class RenderComponentTest extends RenderTest { - @test async "renders a component"(assert) { + @test async "renders a component"(assert: Assert) { assert.expect(1); let containerElement = document.createElement('div'); @@ -22,7 +22,7 @@ class RenderComponentTest extends RenderTest { assert.equal(containerElement.innerHTML, '

A B Hello Glimmer!

'); } - @test async 'renders a component without affecting existing content'(assert) { + @test async 'renders a component without affecting existing content'(assert: Assert) { assert.expect(2); let containerElement = document.createElement('div'); @@ -45,7 +45,7 @@ class RenderComponentTest extends RenderTest { assert.equal(containerElement.innerHTML, '

foo

bar

Hello Glimmer!

'); } - @test async 'renders a component before a given sibling'(assert) { + @test async 'renders a component before a given sibling'(assert: Assert) { assert.expect(2); let containerElement = document.createElement('div'); @@ -68,7 +68,7 @@ class RenderComponentTest extends RenderTest { assert.equal(containerElement.innerHTML, '

Hello Glimmer!

'); } - @test async 'renders multiple components in different places'(assert) { + @test async 'renders multiple components in different places'(assert: Assert) { assert.expect(2); let firstContainerElement = document.createElement('div'); @@ -88,7 +88,7 @@ class RenderComponentTest extends RenderTest { assert.equal(secondContainerElement.innerHTML, '

Hello Robbie!

'); } - @test async 'renders multiple components in the same container'(assert) { + @test async 'renders multiple components in the same container'(assert: Assert) { assert.expect(1); let containerElement = document.createElement('div'); @@ -106,7 +106,7 @@ class RenderComponentTest extends RenderTest { assert.equal(containerElement.innerHTML, '

Hello Glimmer!

Hello Robbie!

'); } - @test async 'renders multiple components in the same container in particular places'(assert) { + @test async 'renders multiple components in the same container in particular places'(assert: Assert) { assert.expect(2); let containerElement = document.createElement('div'); @@ -129,7 +129,7 @@ class RenderComponentTest extends RenderTest { assert.equal(containerElement.innerHTML, '

Hello Robbie!

Hello Glimmer!

'); } - @test async 'user helpers are not volatile'(assert) { + @test async 'user helpers are not volatile'(assert: Assert) { assert.expect(6); let containerElement = document.createElement('div'); @@ -141,7 +141,7 @@ class RenderComponentTest extends RenderTest { class HelloWorld extends Component { @tracked a = 'a'; - constructor(options) { + constructor(options: any) { super(options); component = this; } @@ -150,7 +150,7 @@ class RenderComponentTest extends RenderTest { let count = 0; let app = await this.app - .helper('woot', (params) => { + .helper('woot', (params: any) => { count++; return params[0]; }) @@ -186,7 +186,7 @@ class RenderComponentTest extends RenderTest { } @test({ debug: true }) - async 'throws an exception if an invoked component is not found'(assert) { + async 'throws an exception if an invoked component is not found'(assert: Assert) { assert.expect(1); let containerElement = document.createElement('div'); diff --git a/packages/@glimmer/compiler-delegates/src/module-unification/code-generator.ts b/packages/@glimmer/compiler-delegates/src/module-unification/code-generator.ts index 52ff63da0..b8ce8aab9 100644 --- a/packages/@glimmer/compiler-delegates/src/module-unification/code-generator.ts +++ b/packages/@glimmer/compiler-delegates/src/module-unification/code-generator.ts @@ -15,6 +15,7 @@ import { Project } from "glimmer-analyzer"; import { OutputFiles } from "../app-compiler-delegate"; import { TemplateMeta } from "./compiler-delegate"; import { Builtins, HelperLocator } from "../builtins"; +import { Metadata } from '../../../application/src/loaders/bytecode/loader'; const debug = Debug("@glimmer/compiler-delegates:mu-codegen"); @@ -70,7 +71,7 @@ export default class MUCodeGenerator { let commonPrefix = this.commonPrefix(specifiers); let prefix = `const prefix = "${commonPrefix}";`; - let meta = {}; + let meta: Dict = {}; specifiers.forEach(specifier => { let trimmed = specifier.replace(commonPrefix, ''); @@ -174,7 +175,7 @@ export default class MUCodeGenerator { return source; - function replaceTemplatesWithComponents(locator) { + function replaceTemplatesWithComponents(locator: ModuleLocator) { let referrer = project.specifierForPath(locator.module.replace(/^\.\//, '')); if (referrer && referrer.split(':')[0] === 'template') { let specifier = project.resolver.identify("component:", referrer); @@ -392,8 +393,8 @@ export function getImportStatements(modules: ModuleLocator[]) { /** * To keep file size down, we can eliminate null and undefined values. */ -function removeEmpty(obj) { - let trimmed = {}; +function removeEmpty(obj: Metadata): Metadata { + let trimmed: Metadata = {}; for (let key in obj) { if (obj[key] !== undefined) { diff --git a/packages/@glimmer/compiler-delegates/test/node/application-smoke-test.ts b/packages/@glimmer/compiler-delegates/test/node/application-smoke-test.ts index b597b11cf..60c644461 100644 --- a/packages/@glimmer/compiler-delegates/test/node/application-smoke-test.ts +++ b/packages/@glimmer/compiler-delegates/test/node/application-smoke-test.ts @@ -10,7 +10,7 @@ import * as path from 'path'; const { module, test } = QUnit; -let buildServer; +let buildServer: BuildServer; module('Application smoke tests', { beforeEach() { let mainLocator = { diff --git a/packages/@glimmer/component/src/tracked.ts b/packages/@glimmer/component/src/tracked.ts index 39a6d3f18..bf4f46862 100644 --- a/packages/@glimmer/component/src/tracked.ts +++ b/packages/@glimmer/component/src/tracked.ts @@ -141,7 +141,7 @@ function descriptorForTrackedComputedProperty(target: any, key: any, descriptor: return ret; } - function setter(this: object, value) { + function setter(this: any) { EPOCH.inner.dirty(); // Mark the UpdatableTag for this property with the current tag. @@ -159,7 +159,7 @@ function descriptorForTrackedComputedProperty(target: any, key: any, descriptor: export type Key = string; -export function trackedGet(obj, key) { +export function trackedGet(obj: Object, key: string) { if (CURRENT_TRACKER) CURRENT_TRACKER.add(metaFor(obj).updatableTagFor(key)); } @@ -181,12 +181,12 @@ function installTrackedProperty(target: any, key: Key) { Object.defineProperty(target, key, { configurable: true, - get() { + get(): any { trackedGet(this, key); return this[shadowKey]; }, - set(newValue) { + set(newValue: any) { // Bump the global revision counter EPOCH.inner.dirty(); @@ -304,7 +304,7 @@ const getPrototypeOf = Object.getPrototypeOf; // Finds the nearest Meta instance in an object's prototype chain. Returns null // if the end of the prototype chain is reached without finding a Meta. -function findPrototypeMeta(obj): Meta | null { +function findPrototypeMeta(obj: Object): Meta | null { let meta = null; let proto = obj; diff --git a/packages/@glimmer/component/test/browser/component-test.ts b/packages/@glimmer/component/test/browser/component-test.ts index 71f0cccc6..d58794636 100644 --- a/packages/@glimmer/component/test/browser/component-test.ts +++ b/packages/@glimmer/component/test/browser/component-test.ts @@ -28,7 +28,7 @@ test('can be instantiated with an owner', async function(assert) { test('can yield named args to the block', async function(assert) { let app = await buildApp() - .helper('hash', (params, named) => named) + .helper('hash', (params: any, named: string) => named) .template('Main', 'I have {{x.number}} {{x.string}}') .template('YieldsHash', '
{{yield (hash string="bananas" number=5)}}
') .boot(); diff --git a/packages/@glimmer/component/test/browser/lifecycle-hook-test.ts b/packages/@glimmer/component/test/browser/lifecycle-hook-test.ts index c8961d754..00915a162 100644 --- a/packages/@glimmer/component/test/browser/lifecycle-hook-test.ts +++ b/packages/@glimmer/component/test/browser/lifecycle-hook-test.ts @@ -95,6 +95,6 @@ test('fragment bounds are set before didInsertElement', async function(assert) { `)).boot(); }); -function trim(str) { +function trim(str: string) { return str.trim(); } diff --git a/tsconfig.json b/tsconfig.json index 8c0704ce4..cbb50ef11 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -37,6 +37,7 @@ // that include node_modules. "packages/@glimmer/*/src/**/*.ts", "packages/@glimmer/*/index.ts", - "packages/@glimmer/*/test/**/*.ts" + "packages/@glimmer/*/test/**/*.ts", + "packages/rollup-plugin-typescript2/src/**/*.ts" ] } diff --git a/yarn.lock b/yarn.lock index fb94f467c..be65bef29 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2783,6 +2783,10 @@ estree-walker@^0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.3.1.tgz#e6b1a51cf7292524e7237c312e5fe6660c1ce1aa" +estree-walker@^0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.5.2.tgz#d3850be7529c9580d815600b53126515e146dd39" + esutils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" @@ -3270,6 +3274,14 @@ fs-exists-sync@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add" +fs-extra@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.0.tgz#8cc3f47ce07ef7b3593a11b9fb245f7e34c041d6" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + fs-extra@^0.24.0: version "0.24.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.24.0.tgz#d4e4342a96675cb7846633a6099249332b539952" @@ -5926,6 +5938,12 @@ resolve@1.5.0: dependencies: path-parse "^1.0.5" +resolve@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" + dependencies: + path-parse "^1.0.5" + resolve@^1.1.6, resolve@^1.1.7, resolve@^1.3.0, resolve@^1.3.3, resolve@^1.4.0: version "1.7.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.7.1.tgz#aadd656374fd298aee895bc026b8297418677fd3" @@ -5985,10 +6003,26 @@ rollup-plugin-sourcemaps@^0.4.2: rollup-pluginutils "^2.0.1" source-map-resolve "^0.5.0" +rollup-plugin-typescript2@^0.17.0: + version "0.17.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.17.0.tgz#a540eecfe9ad8ff5e8e86eaf5069bb2a7f84f33a" + dependencies: + fs-extra "7.0.0" + resolve "1.8.1" + rollup-pluginutils "2.3.1" + tslib "1.9.3" + rollup-plugin-virtual@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/rollup-plugin-virtual/-/rollup-plugin-virtual-1.0.1.tgz#8227c94c605b981adfe433ea74de3551e42ffeb4" +rollup-pluginutils@2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.3.1.tgz#760d185ccc237dedc12d7ae48c6bcd127b4892d0" + dependencies: + estree-walker "^0.5.2" + micromatch "^2.3.11" + rollup-pluginutils@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.0.1.tgz#7ec95b3573f6543a46a6461bd9a7c544525d0fc0" @@ -6869,6 +6903,10 @@ trim-right@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" +tslib@1.9.3: + version "1.9.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" + tslib@^1.8.0: version "1.9.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.0.tgz#e37a86fda8cbbaf23a057f473c9f4dc64e5fc2e8" From 1c1015fa0816e1333fcfb2af27a4b15026b092d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gast=C3=B3n=20Silva?= Date: Fri, 28 Sep 2018 12:14:15 -0700 Subject: [PATCH 2/2] fix --- packages/@glimmer/component/src/tracked.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/@glimmer/component/src/tracked.ts b/packages/@glimmer/component/src/tracked.ts index bf4f46862..7eca2e9e5 100644 --- a/packages/@glimmer/component/src/tracked.ts +++ b/packages/@glimmer/component/src/tracked.ts @@ -141,7 +141,7 @@ function descriptorForTrackedComputedProperty(target: any, key: any, descriptor: return ret; } - function setter(this: any) { + function setter(this: object) { EPOCH.inner.dirty(); // Mark the UpdatableTag for this property with the current tag.