OLD | NEW |
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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 part of dart2js.js_emitter.startup_emitter.model_emitter; | 5 part of dart2js.js_emitter.startup_emitter.model_emitter; |
6 | 6 |
7 /// The name of the property that stores the tear-off getter on a static | 7 /// The name of the property that stores the tear-off getter on a static |
8 /// function. | 8 /// function. |
9 /// | 9 /// |
10 /// This property is only used when isolates are used. | 10 /// This property is only used when isolates are used. |
(...skipping 684 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
695 /// The prototype is generated as object literal. Inheritance is ignored. | 695 /// The prototype is generated as object literal. Inheritance is ignored. |
696 /// | 696 /// |
697 /// The prototype also includes the `is-property` that every class must have. | 697 /// The prototype also includes the `is-property` that every class must have. |
698 // TODO(floitsch): we could avoid that property if we knew that it wasn't | 698 // TODO(floitsch): we could avoid that property if we knew that it wasn't |
699 // needed. | 699 // needed. |
700 js.Expression emitPrototype(Class cls) { | 700 js.Expression emitPrototype(Class cls) { |
701 Iterable<Method> methods = cls.methods; | 701 Iterable<Method> methods = cls.methods; |
702 Iterable<Method> checkedSetters = cls.checkedSetters; | 702 Iterable<Method> checkedSetters = cls.checkedSetters; |
703 Iterable<Method> isChecks = cls.isChecks; | 703 Iterable<Method> isChecks = cls.isChecks; |
704 Iterable<Method> callStubs = cls.callStubs; | 704 Iterable<Method> callStubs = cls.callStubs; |
705 Iterable<Method> typeVariableReaderStubs = cls.typeVariableReaderStubs; | |
706 Iterable<Method> noSuchMethodStubs = cls.noSuchMethodStubs; | 705 Iterable<Method> noSuchMethodStubs = cls.noSuchMethodStubs; |
707 Iterable<Method> gettersSetters = generateGettersSetters(cls); | 706 Iterable<Method> gettersSetters = generateGettersSetters(cls); |
708 Iterable<Method> allMethods = [ | 707 Iterable<Method> allMethods = [ |
709 methods, | 708 methods, |
710 checkedSetters, | 709 checkedSetters, |
711 isChecks, | 710 isChecks, |
712 callStubs, | 711 callStubs, |
713 typeVariableReaderStubs, | |
714 noSuchMethodStubs, | 712 noSuchMethodStubs, |
715 gettersSetters | 713 gettersSetters |
716 ].expand((x) => x); | 714 ].expand((x) => x); |
717 | 715 |
718 List<js.Property> properties = <js.Property>[]; | 716 List<js.Property> properties = <js.Property>[]; |
719 | 717 |
720 if (cls.superclass == null) { | 718 if (cls.superclass == null) { |
721 properties | 719 properties |
722 .add(new js.Property(js.string("constructor"), classReference(cls))); | 720 .add(new js.Property(js.string("constructor"), classReference(cls))); |
723 properties | 721 properties |
(...skipping 661 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1385 } | 1383 } |
1386 statements.add(js.js.statement("setOrUpdateInterceptorsByTag(#);", | 1384 statements.add(js.js.statement("setOrUpdateInterceptorsByTag(#);", |
1387 js.objectLiteral(interceptorsByTag))); | 1385 js.objectLiteral(interceptorsByTag))); |
1388 statements.add( | 1386 statements.add( |
1389 js.js.statement("setOrUpdateLeafTags(#);", js.objectLiteral(leafTags))); | 1387 js.js.statement("setOrUpdateLeafTags(#);", js.objectLiteral(leafTags))); |
1390 statements.addAll(subclassAssignments); | 1388 statements.addAll(subclassAssignments); |
1391 | 1389 |
1392 return new js.Block(statements); | 1390 return new js.Block(statements); |
1393 } | 1391 } |
1394 } | 1392 } |
OLD | NEW |