Ivy definition looks something like this:
```
class MyService {
static ngInjectableDef = defineInjectable({
…
});
}
```
Here the argument to `defineInjectable` is well known public contract which needs
to be honored in backward compatible way between versions. The type of the
return value of `defineInjectable` on the other hand is private and can change
shape drastically between versions without effecting backwards compatibility of
libraries publish to NPM. To our users it is effectively an `OpaqueToken`.
By prefixing the type with `ɵ` we are communicating the the outside world that
the value is not public API and is subject to change without backward compatibility.
PR Close #23371
|
||
|---|---|---|
| .. | ||
| e2e_test | ||
| src | ||
| favicon.ico | ||
| README.md | ||
How to run the benchmarks locally
Run in the browser
$ build.sh (only needed 1x to copy over third party resources) $ cp -r ./modules/benchmarks ./dist/all/ $ ./node_modules/.bin/tsc -p modules --emitDecoratorMetadata -w $ gulp serve $ open http://localhost:8000/all/benchmarks/src/tree/ng2/index.html?bundles=false
Run e2e tests
$ export NODE_PATH=$(pwd)/dist/all:$(pwd)/dist/tools $ ./node_modules/.bin/protractor protractor-e2e.conf.js --specs=dist/all/benchmarks/e2e_test/tree_spec.js
Options for protractor with protractor-e2e.conf.js:
--bundles=true: use prebuilt bundles--ng-help: show all available options
Run benchmarks tests
$ export NODE_PATH=$(pwd)/dist/all:$(pwd)/dist/tools $ ./node_modules/.bin/protractor protractor-perf.conf.js --specs=dist/all/benchmarks/e2e_test/tree_perf.js
Options for protractor with protractor-perf.conf.js:
--bundles=true: use prebuilt bundles--ng-help: show all available options
Compile *_aot.ts files
These files are compiled as part of the compiler_cli integration tests.
See @angular/compile_cli/integrationtest/tsconfig.json