Commit Graph

34591 Commits

Author SHA1 Message Date
Ryan Cavanaugh 2f6f74d0c8 Merge pull request #10243 from joshaber/iterable-readonlyarray
Make ReadonlyArray iterable.
2016-08-10 10:34:12 -07:00
Wesley Wigham ecc51af1ec Allow OSX to fail while we investigate (#10255)
The random test timeouts are an issue.
2016-08-10 10:01:16 -07:00
Andy bc5f41ebe4 Merge pull request #10227 from Microsoft/for_of
Fix loop over array to use for-of instead of for-in
2016-08-10 06:07:06 -07:00
Anders Hejlsberg 557fc38446 Merge pull request #10235 from Microsoft/fixDiscriminantWithNullableType
Fix discriminant type guards with nullable type
2016-08-09 21:03:35 -07:00
joshaber 8975cd7024 Make ReadonlyArray iterable. 2016-08-09 23:00:47 -04:00
Anders Hejlsberg 9d4547c5d0 Optimize format of type list id strings used in maps 2016-08-09 16:33:45 -07:00
Yui 5d0e1994f4 [Release 2.0] fix10076 : Destructing with "this" (#10209)
* Call checkExpression eventhough there is no appropriate type from destructuring of array

* Add tests and baselines
2016-08-09 16:05:17 -07:00
Kanchalai Tanglertsampan 75de324e6b Merge branch 'master' into fix10193 2016-08-09 15:58:30 -07:00
Kanchalai Tanglertsampan 7c3f27434c Add tests and baselines 2016-08-09 15:55:26 -07:00
Kanchalai Tanglertsampan f16d599f79 Issues an error when there are more than one export default 2016-08-09 15:54:44 -07:00
Nathan Shively-Sanders 80963baf50 Always use thisType when generating tuple id 2016-08-09 15:37:15 -07:00
Nathan Shively-Sanders 6a8f4cb676 Delay tuple type constraint resolution
Create a new tuple that stores the this-type.
2016-08-09 14:48:11 -07:00
Anders Hejlsberg 6c0bca0ae5 Add regression test 2016-08-09 13:39:12 -07:00
Anders Hejlsberg a5ea55ab65 Ignore null, undefined, void when checking for discriminant property 2016-08-09 13:39:00 -07:00
Nathan Shively-Sanders d34bbe5f58 Add explanatory comment to resolveTupleTypeMembers 2016-08-09 12:47:43 -07:00
Nathan Shively-Sanders 7e115bbbef Use correct this in tuple type parameter constraints
Instantiate this in tuple types used as type parameter constraints
2016-08-09 12:44:08 -07:00
Andy Hanson 4f54c6c228 Fix loop over array to use for-of instead of for-in 2016-08-09 06:55:21 -07:00
Anders Hejlsberg 3f1ec7ad4b Merge pull request #10216 from Microsoft/structurallyIdenticalInstanceof
Improve instanceof with structurally identical types
2016-08-08 22:14:50 -07:00
Anders Hejlsberg fe1854e441 Accept new baselines 2016-08-08 17:43:41 -07:00
Anders Hejlsberg 9277b3f5ad Add test 2016-08-08 17:40:53 -07:00
Anders Hejlsberg 5ebfad6e4a Introduce isTypeInstanceOf function 2016-08-08 17:40:27 -07:00
Anders Hejlsberg 624e52e834 Improve instanceof for structurally identical types 2016-08-08 16:40:59 -07:00
Ryan Cavanaugh 5adceb92a7 Remove use strict 2016-08-08 15:40:25 -07:00
Ryan Cavanaugh 40f0c6018d use transpileModule 2016-08-08 15:36:38 -07:00
Yui 3f6aa3f3f0 Fix 10076: Fix Tuple Destructing with "this" (#10208)
* Call checkExpression eventhough there is no appropriate type from destructuring of array

* Add tests and baselines
2016-08-08 14:45:29 -07:00
Yui 0cfeaaffb5 [Release 2.0] fix10179: 2.0 emits optional class properties defined in constructors, which breaks compatibility (#10212)
* Do not emit "?" for in property declaration in .d.ts when the property is declared as optional parameter property declaration

* Update baselines
2016-08-08 14:45:01 -07:00
Ryan Cavanaugh eac7a48c5f Fix non-strict-compliant test 2016-08-08 14:39:31 -07:00
Ryan Cavanaugh 53d54c2b28 Make baselines faster by not writing out unneeded files 2016-08-08 14:30:27 -07:00
Kanchalai Tanglertsampan 669191e5fa Merge branch 'master' of https://github.com/microsoft/TypeScript 2016-08-08 14:01:12 -07:00
Ryan Cavanaugh e724e883e6 Duh 2016-08-08 13:31:45 -07:00
Ryan Cavanaugh ce7f554090 Speed up fourslash tests 2016-08-08 13:15:25 -07:00
Wesley Wigham 30e95df91e Reduce worker count to 3 (#10210)
Since we saw a starvation issue on one of @sandersn's PRs.
2016-08-08 13:11:02 -07:00
Kanchalai Tanglertsampan 9a18429184 Add tests and baselines 2016-08-08 11:56:20 -07:00
Kanchalai Tanglertsampan 42d61b5098 Call checkExpression eventhough there is no appropriate type from destructuring of array 2016-08-08 11:55:59 -07:00
Anders Hejlsberg 8ea90ab28b Merge pull request #10194 from Microsoft/fixInstanceofNarrowing
Fix instanceof narrowing
2016-08-08 11:51:34 -07:00
Anders Hejlsberg f6a850b988 Merge pull request #10188 from Microsoft/discriminantPropertyCheck
Discriminant property checks
2016-08-08 11:49:33 -07:00
Richard Knoll 8a976f1100 Moving some utility functions around 2016-08-08 11:04:17 -07:00
Anders Hejlsberg ba521de66d Accept new baselines 2016-08-08 09:45:12 -07:00
Anders Hejlsberg ce5a3f466d Add more tests 2016-08-08 09:44:43 -07:00
Anders Hejlsberg a0c5608770 Update comment 2016-08-08 09:44:24 -07:00
Nathan Shively-Sanders acfdfe0560 Merge pull request #10103 from Microsoft/narrowing-a-type-parameter-intersects-concrete-types
Correctly narrow unconstrained type parameters
2016-08-08 09:22:32 -07:00
Nathan Shively-Sanders 5f665ad353 Merge pull request #9996 from joshaber/patch-1
Add `find` and `findIndex` to ReadonlyArray
2016-08-08 09:11:09 -07:00
Nathan Shively-Sanders 2845d2f8b8 Improve naming and documentation from PR 2016-08-08 09:04:46 -07:00
Nathan Shively-Sanders e25db39ab4 Merge branch 'master' into narrowing-a-type-parameter-intersects-concrete-types 2016-08-08 08:42:28 -07:00
Anders Hejlsberg 67b3fe58fa Add regression test 2016-08-07 08:53:36 -07:00
Anders Hejlsberg f50226b481 Accept new baselines 2016-08-07 07:53:36 -07:00
Anders Hejlsberg 01f865dee7 Fix instanceof operator narrowing issues 2016-08-07 07:48:40 -07:00
Godfrey Chan cc2dc3acb0 Emit more efficient/concise "empty" ES6 ctor
When there are property assignments in a the class body of an inheriting
class, tsc current emit the following compilation:

```ts
class Foo extends Bar {
  public foo = 1;
}
```

```js
class Foo extends Bar {
  constructor(…args) {
    super(…args);
    this.foo = 1;
  }
}
```

This introduces an unneeded local variable and might force a reification
of the `arguments` object (or otherwise reify the arguments into an
array).

This is particularly bad when that output is fed into another transpiler
like Babel. In Babel, you get something like this today:


```js
var Foo = (function (_Bar) {
  _inherits(Foo, _Bar);

  function Foo() {
    _classCallCheck(this, Foo);

    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _Bar.call.apply(_Bar, [this].concat(args));
    this.foo = 1;
  }

  return Foo;
})(Bar);
```

This causes a lot of needless work/allocations and some very strange
code (`.call.apply` o_0).

Admittedly, this is not strictly tsc’s problem; it could have done a
deeper analysis of the code and optimized out the extra dance. However,
tsc could also have emitted this simpler, more concise and semantically
equivalent code in the first place:


```js
class Foo extends Bar {
  constructor() {
    super(…arguments);
    this.foo = 1;
  }
}
```

Which compiles into the following in Babel:

```js
var Foo = (function (_Bar) {
  _inherits(Foo, _Bar);

  function Foo() {
    _classCallCheck(this, Foo);

    _Bar.apply(this, arguments);
    this.foo = 1;
  }

  return Foo;
})(Bar);
```

Which is well-optimized (today) in most engines and much less confusing
to read.

As far as I can tell, the proposed compilation has exactly the same
semantics as before.

Fixes #10175
2016-08-06 23:24:44 -07:00
Anders Hejlsberg 1375505a1f Add tests 2016-08-06 09:06:56 -07:00
Anders Hejlsberg 37e96b3a06 Stricter check for discriminant properties in type guards 2016-08-06 09:01:35 -07:00