perf: Don’t subclass Error; resulting in smaller binary (#14160)

Subclassing errors is problematic since Error returns a
new instance. All of the patching which we do than prevent
proper application of source maps.

PR Close #14160
This commit is contained in:
Miško Hevery
2017-01-27 13:19:00 -08:00
committed by Miško Hevery
parent 3c2842be96
commit c33fda2607
51 changed files with 407 additions and 500 deletions

View File

@ -7,7 +7,7 @@
*/
import {describe, expect, it} from '../../../core/testing/testing_internal';
import {CssLexer, CssLexerMode, CssScannerError, CssToken, CssTokenType} from '../../src/css_parser/css_lexer';
import {CssLexer, CssLexerMode, CssToken, CssTokenType, cssScannerError, getRawMessage, getToken} from '../../src/css_parser/css_lexer';
import {isPresent} from '../../src/facade/lang';
export function main() {
@ -22,7 +22,7 @@ export function main() {
while (output != null) {
const error = output.error;
if (isPresent(error)) {
throw new CssScannerError(error.token, error.rawMessage);
throw cssScannerError(getToken(error), getRawMessage(error));
}
tokens.push(output.token);
output = scanner.scan();
@ -279,7 +279,7 @@ export function main() {
try {
tokenize(cssCode, false, CssLexerMode.STYLE_BLOCK);
} catch (e) {
capturedMessage = e.rawMessage;
capturedMessage = getRawMessage(e);
}
expect(capturedMessage).toMatch(/Unexpected character \[\>\] at column 0:7 in expression/g);
@ -288,7 +288,7 @@ export function main() {
try {
tokenize(cssCode, false, CssLexerMode.SELECTOR);
} catch (e) {
capturedMessage = e.rawMessage;
capturedMessage = getRawMessage(e);
}
expect(capturedMessage).toEqual(null);