Issue 1:
I'm submitting a ... (check one with "x")

bug report => search github for a similar issue or PR before submitting

feature request

support request => Please do not submit support request here, instead see https://github.com/angular/angular/blob/master/CONTRIBUTING.md#question

Current behavior

Almost all methods of AbstractControl aren't being shown on https://angular.io/docs/ts/latest/api/forms/index/AbstractControl-class.html

Full list:

setValidators(newValidator: ValidatorFn|ValidatorFn[]): void

setAsyncValidators(newValidator: AsyncValidatorFn|AsyncValidatorFn[]): void

clearValidators(): void

clearAsyncValidators(): void

markAsTouched({onlySelf}: {onlySelf?: boolean} = {}): void

markAsUntouched({onlySelf}: {onlySelf?: boolean} = {}): void

markAsDirty({onlySelf}: {onlySelf?: boolean} = {}): void

markAsPristine({onlySelf}: {onlySelf?: boolean} = {}): void

markAsPending({onlySelf}: {onlySelf?: boolean} = {}): void

disable({onlySelf, emitEvent}: {onlySelf?: boolean, emitEvent?: boolean} = {}): void

enable({onlySelf, emitEvent}: {onlySelf?: boolean, emitEvent?: boolean} = {}): void

setParent(parent: FormGroup|FormArray): void

updateValueAndValidity({onlySelf, emitEvent}: {onlySelf?: boolean, emitEvent?: boolean} = {}):
void

setErrors(errors: ValidationErrors|null, {emitEvent}: {emitEvent?: boolean} = {}): void

get(path: Array<string|number>|string): AbstractControl

getError(errorCode: string, path: string[] = null): any

hasError(errorCode: string, path: string[] = null): boolean

get root(): AbstractControl

Expected behavior

Minimal reproduction of the problem with instructions

What is the motivation / use case for changing the behavior?

Please tell us about your environment:

Angular version: 4.0.X

Browser: [all | Chrome XX | Firefox XX | IE XX | Safari XX | Mobile Chrome XX | Android X.X Web Browser | iOS XX Safari | iOS XX UIWebView | iOS XX WKWebView ]

All

Language: [all | TypeScript X.X | ES6/7 | ES5]

All

Node (for AoT issues): node --version =

Issue 2:
I'm submitting a ... (check one with "x")

[ x] bug report => search github for a similar issue or PR before submitting
[ ] feature request
[ ] support request => Please do not submit support request here, instead see https://github.com/angular/angular/blob/master/CONTRIBUTING.md#question

Current behavior

The Angular 2 Component Testing in RC 6 works accurately using Jasmine and Karma. It produces desired results by executing all tests in the 'spec.ts' file (for Component and Service). But when the application is migrated to Angular 2 final release. The Browser testing fails when the test.html is viewed in the browser (IE/Chrome/Firefox) with the following error

TypeError: Cannot read property 'spies' of undefined

at currentSpies (http://localhost:8000/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:803:53)

at SpyRegistry.clearSpies (http://localhost:8000/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:2123:19)

at clearResourcesForRunnable (http://localhost:8000/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:615:21)

at http://localhost:8000/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:777:9

at ZoneDelegate.invokeTask (http://localhost:8000/node_modules/zone.js/dist/zone.js:236:37)

at Zone.runTask (http://localhost:8000/node_modules/zone.js/dist/zone.js:136:47)

at drainMicroTaskQueue (http://localhost:8000/node_modules/zone.js/dist/zone.js:368:35)

at ZoneTask.invoke (http://localhost:8000/node_modules/zone.js/dist/zone.js:308:25)

Expected behavior

The expected accurate behavior is that the browser should show all test either passed or failed (as per the test data).

Minimal reproduction of the problem with instructions

Create an application using Visual Studio Code

Install necessary dependencies using npm install. The package.json is as following

"dependencies": {

"@angular/common": "2.0.0",

"@angular/compiler": "2.0.0",

"@angular/core": "2.0.0",

"@angular/forms": "2.0.0",

"@angular/http": "2.0.0",

"@angular/platform-browser": "2.0.0",

"@angular/platform-browser-dynamic": "2.0.0",

"@angular/router": "3.0.1",

"reflect-metadata": "0.1.8",

"core-js": "2.4.1",

"rxjs": "5.0.0-beta.12",

"systemjs": "0.19.39",

"zone.js": "0.6.25",

"bootstrap": "3.3.7",
"jquery": "3.1.1",

"express": "4.14.0",
"ws": "1.1.1"

},

"devDependencies": {

"@types/es6-shim": "0.31.32",

"@types/express": "4.0.33",

"@types/jasmine": "2.2.34",

"@types/ws": "0.0.33",

"jasmine-core": "2.5.2",
"karma": "1.3.0",
"karma-chrome-launcher": "2.0.0",
"karma-firefox-launcher": "1.0.0",
"karma-jasmine": "1.0.2",

"nodemon": "1.10.2",
"typescript": "2.0.3"

}

The Component

import {Component, ViewEncapsulation} from '@angular/core';

@component({

selector: 'my-application',

templateUrl: 'app/application.html'

})

export default class AppComponent {}

The Test spec is app.spec.ts

import AppComponent from './app';

describe('AppComponent', () => {

it('is true', () => {

let app = new AppComponent();

expect(app instanceof AppComponent).toEqual(true);

});

});

References in test.html are as follows

<script src="node_modules/typescript/lib/typescript.js"></script>

<script src="node_modules/reflect-metadata/Reflect.js"></script>

<script src="node_modules/jasmine-core/lib/jasmine-core/jasmine.js"></script>
<script src="node_modules/jasmine-core/lib/jasmine-core/jasmine-html.js"></script>
<script src="node_modules/jasmine-core/lib/jasmine-core/boot.js"></script>

<script src="node_modules/zone.js/dist/zone.js"></script>
<script src="node_modules/zone.js/dist/proxy.js"></script>
<script src="node_modules/zone.js/dist/sync-test.js"></script>
<script src="node_modules/zone.js/dist/jasmine-patch.js"></script>
<script src="node_modules/zone.js/dist/async-test.js"></script>
<script src="node_modules/zone.js/dist/fake-async-test.js"></script>
<script src="node_modules/zone.js/dist/long-stack-trace-zone.js"></script>

<script src="node_modules/systemjs/dist/system.src.js"></script>
<script src="systemjs.config.js"></script>
<script>
var test_modules = [
'app/app.spec',
];

Promise.all([
System.import('@angular/core/testing'),
System.import('@angular/platform-browser-dynamic/testing')
])
.then(function (modules) {
var cp= modules[0];

cp.TestBed.initTestEnvironment(
browser.BrowserDynamicTestingModule,
browser.platformBrowserDynamicTesting());

// Load all the spec files.
return Promise.all(test_modules.map(function (module) {
return System.import(module);
}));
})
.then(window.onload)
.catch(console.error.bind(console));
</script>

Please tell us about your environment:

OS : Windows 10 Professional

IDE: Visual Studio Code

Node Package Manager

Express HTTP Server (Even tested on Koa)

Angular version: 2.0.X

Angular 2.0 Final Release

Browser: [all | Chrome XX | Firefox XX | IE XX | Safari XX | Mobile Chrome XX | Android X.X Web Browser | iOS XX Safari | iOS XX UIWebView | iOS XX WKWebView ]

Chrome, IE, Firefox

Language: [all | TypeScript X.X | ES6/7 | ES5]

TypeScript Language is used

Node (for AoT issues): node --version =