Description: fix offlineasm error with Ruby 3.2 Swap checks to prevent applying the =~ operator to Annotation instances, which do not define it. Origin: upstream, https://commits.webkit.org/219400@main Last-Update: 2024-03-28 --- a/Source/JavaScriptCore/offlineasm/parser.rb +++ b/Source/JavaScriptCore/offlineasm/parser.rb @@ -584,9 +584,7 @@ class Parser firstCodeOrigin = @tokens[@idx].codeOrigin list = [] loop { - if (@idx == @tokens.length and not final) or (final and @tokens[@idx] =~ final) - break - elsif @tokens[@idx].is_a? Annotation + if @tokens[@idx].is_a? Annotation # This is the only place where we can encounter a global # annotation, and hence need to be able to distinguish between # them. @@ -600,6 +598,8 @@ class Parser list << Instruction.new(codeOrigin, annotationOpcode, [], @tokens[@idx].string) @annotation = nil @idx += 2 # Consume the newline as well. + elsif (@idx == @tokens.length and not final) or (final and @tokens[@idx] =~ final) + break elsif @tokens[@idx] == "\n" # ignore @idx += 1