Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(628)

Side by Side Diff: pkg/compiler/lib/src/patch_parser.dart

Issue 1410403003: Switch Js to JS (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « pkg/compiler/lib/src/js_backend/backend.dart ('k') | pkg/js/lib/js.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 /** 5 /**
6 * This library contains the infrastructure to parse and integrate patch files. 6 * This library contains the infrastructure to parse and integrate patch files.
7 * 7 *
8 * Three types of elements can be patched: [LibraryElement], [ClassElement], 8 * Three types of elements can be patched: [LibraryElement], [ClassElement],
9 * [FunctionElement]. Patches are introduced in patch libraries which are loaded 9 * [FunctionElement]. Patches are introduced in patch libraries which are loaded
10 * together with the corresponding origin library. Which libraries that are 10 * together with the corresponding origin library. Which libraries that are
(...skipping 447 matching lines...) Expand 10 before | Expand all | Expand 10 after
458 MetadataAnnotation annotation, 458 MetadataAnnotation annotation,
459 ConstantValue constant) { 459 ConstantValue constant) {
460 DartType annotationType = constant.getType(compiler.coreTypes); 460 DartType annotationType = constant.getType(compiler.coreTypes);
461 if (annotationType.element != compiler.nativeAnnotationClass) { 461 if (annotationType.element != compiler.nativeAnnotationClass) {
462 DiagnosticReporter reporter = compiler.reporter; 462 DiagnosticReporter reporter = compiler.reporter;
463 reporter.internalError(annotation, 'Invalid @Native(...) annotation.'); 463 reporter.internalError(annotation, 'Invalid @Native(...) annotation.');
464 } 464 }
465 } 465 }
466 } 466 }
467 467
468 /// Annotation handler for pre-resolution detection of `@Js(...)` 468 /// Annotation handler for pre-resolution detection of `@JS(...)`
469 /// annotations. 469 /// annotations.
470 class JsInteropAnnotationHandler implements EagerAnnotationHandler<bool> { 470 class JsInteropAnnotationHandler implements EagerAnnotationHandler<bool> {
471 const JsInteropAnnotationHandler(); 471 const JsInteropAnnotationHandler();
472 472
473 bool hasJsNameAnnotation(MetadataAnnotation annotation) => 473 bool hasJsNameAnnotation(MetadataAnnotation annotation) =>
474 annotation.beginToken != null && annotation.beginToken.next.value == 'Js'; 474 annotation.beginToken != null && annotation.beginToken.next.value == 'JS';
475 475
476 bool apply(Compiler compiler, 476 bool apply(Compiler compiler,
477 Element element, 477 Element element,
478 MetadataAnnotation annotation) { 478 MetadataAnnotation annotation) {
479 bool hasJsInterop = hasJsNameAnnotation(annotation); 479 bool hasJsInterop = hasJsNameAnnotation(annotation);
480 if (hasJsInterop) { 480 if (hasJsInterop) {
481 element.markAsJsInterop(); 481 element.markAsJsInterop();
482 } 482 }
483 // Due to semantics of apply in the baseclass we have to return null to 483 // Due to semantics of apply in the baseclass we have to return null to
484 // indicate that no match was found. 484 // indicate that no match was found.
485 return hasJsInterop ? true : null; 485 return hasJsInterop ? true : null;
486 } 486 }
487 487
488 @override 488 @override
489 void validate(Compiler compiler, 489 void validate(Compiler compiler,
490 Element element, 490 Element element,
491 MetadataAnnotation annotation, 491 MetadataAnnotation annotation,
492 ConstantValue constant) { 492 ConstantValue constant) {
493 JavaScriptBackend backend = compiler.backend; 493 JavaScriptBackend backend = compiler.backend;
494 if (constant.getType(compiler.coreTypes).element != 494 if (constant.getType(compiler.coreTypes).element !=
495 backend.jsAnnotationClass) { 495 backend.jsAnnotationClass) {
496 compiler.reporter.internalError(annotation, 'Invalid @Js(...) annotation.' ); 496 compiler.reporter.internalError(annotation, 'Invalid @JS(...) annotation.' );
497 } 497 }
498 } 498 }
499 } 499 }
500 500
501 /// Annotation handler for pre-resolution detection of `@patch` annotations. 501 /// Annotation handler for pre-resolution detection of `@patch` annotations.
502 class PatchAnnotationHandler implements EagerAnnotationHandler<PatchVersion> { 502 class PatchAnnotationHandler implements EagerAnnotationHandler<PatchVersion> {
503 const PatchAnnotationHandler(); 503 const PatchAnnotationHandler();
504 504
505 PatchVersion getPatchVersion(MetadataAnnotation annotation) { 505 PatchVersion getPatchVersion(MetadataAnnotation annotation) {
506 if (annotation.beginToken != null) { 506 if (annotation.beginToken != null) {
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
678 678
679 class PatchVersion { 679 class PatchVersion {
680 final String tag; 680 final String tag;
681 681
682 const PatchVersion(this.tag); 682 const PatchVersion(this.tag);
683 683
684 bool isActive(String patchTag) => tag == null || tag == patchTag; 684 bool isActive(String patchTag) => tag == null || tag == patchTag;
685 685
686 String toString() => 'PatchVersion($tag)'; 686 String toString() => 'PatchVersion($tag)';
687 } 687 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/js_backend/backend.dart ('k') | pkg/js/lib/js.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698