@@ -845,16 +845,18 @@ public static GetAttrNode create() {
845845 public abstract Object executeWithArgs (VirtualFrame frame , Object primary , String name , Object defaultValue );
846846
847847 @ SuppressWarnings ("unused" )
848- @ Specialization (limit = "getIntOption(getContext(), AttributeAccessInlineCacheMaxDepth)" , guards = {"name.equals (cachedName)" , "isNoValue(defaultValue)" })
848+ @ Specialization (limit = "getIntOption(getContext(), AttributeAccessInlineCacheMaxDepth)" , guards = {"stringEquals (cachedName, name, stringProfile )" , "isNoValue(defaultValue)" })
849849 public Object getAttrDefault (VirtualFrame frame , Object primary , String name , PNone defaultValue ,
850+ @ Cached ("createBinaryProfile()" ) ConditionProfile stringProfile ,
850851 @ Cached ("name" ) String cachedName ,
851852 @ Cached ("create(name)" ) GetFixedAttributeNode getAttributeNode ) {
852853 return getAttributeNode .executeObject (frame , primary );
853854 }
854855
855856 @ SuppressWarnings ("unused" )
856- @ Specialization (limit = "getIntOption(getContext(), AttributeAccessInlineCacheMaxDepth)" , guards = {"name.equals (cachedName)" , "!isNoValue(defaultValue)" })
857+ @ Specialization (limit = "getIntOption(getContext(), AttributeAccessInlineCacheMaxDepth)" , guards = {"stringEquals (cachedName, name, stringProfile )" , "!isNoValue(defaultValue)" })
857858 Object getAttr (VirtualFrame frame , Object primary , String name , Object defaultValue ,
859+ @ Cached ("createBinaryProfile()" ) ConditionProfile stringProfile ,
858860 @ Cached ("name" ) String cachedName ,
859861 @ Cached ("create(name)" ) GetFixedAttributeNode getAttributeNode ,
860862 @ Cached ("create()" ) IsBuiltinClassProfile errorProfile ) {
0 commit comments