mirror of
https://github.com/dart-lang/sdk
synced 2024-10-14 13:08:10 +00:00
dart2js cps_ir: propagate constant field values
The effect is to remove endianness logic in SHA1. Mark some single-call methods as @NoInline() R=asgerf@google.com Review URL: https://codereview.chromium.org/1408193009 .
This commit is contained in:
parent
f7a39a6241
commit
7b48eb2b7f
|
@ -3027,7 +3027,7 @@ class TypePropagationVisitor implements Visitor {
|
|||
|
||||
void visitGetField(GetField node) {
|
||||
node.objectIsNotNull = getValue(node.object.definition).isDefinitelyNotNull;
|
||||
setValue(node, nonConstant(typeSystem.getFieldType(node.field)));
|
||||
setValue(node, lattice.fromMask(typeSystem.getFieldType(node.field)));
|
||||
}
|
||||
|
||||
void visitSetField(SetField node) {}
|
||||
|
|
|
@ -164,6 +164,7 @@ const DISCRIMINATED_MARK = '*';
|
|||
* A dispatch record is cached according to the specification of the dispatch
|
||||
* tag for [obj].
|
||||
*/
|
||||
@NoInline()
|
||||
lookupAndCacheInterceptor(obj) {
|
||||
assert(!isDartObject(obj));
|
||||
String tag = getTagFunction(obj);
|
||||
|
@ -288,12 +289,14 @@ String constructorNameFallback(object) {
|
|||
|
||||
var initNativeDispatchFlag; // null or true
|
||||
|
||||
@NoInline()
|
||||
void initNativeDispatch() {
|
||||
if (true == initNativeDispatchFlag) return;
|
||||
initNativeDispatchFlag = true;
|
||||
initNativeDispatchContinue();
|
||||
}
|
||||
|
||||
@NoInline()
|
||||
void initNativeDispatchContinue() {
|
||||
|
||||
dispatchRecordsForInstanceTags = JS('', 'Object.create(null)');
|
||||
|
|
Loading…
Reference in a new issue