Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unnecessary bailout for known num receiver #8648

Closed
peter-ahe-google opened this issue Feb 20, 2013 · 6 comments
Closed

Unnecessary bailout for known num receiver #8648

peter-ahe-google opened this issue Feb 20, 2013 · 6 comments

Comments

@peter-ahe-google
Copy link
Contributor

Consider this snippet from dart/samples/swarm/DataSource.dart:

  static Section decode(Decoder decoder) {
    final sectionId = decoder.readString();
    final sectionTitle = decoder.readString();

    final nSources = decoder.readInt();
    final feeds = new ObservableList<Feed>();
    for (int j=0; j < nSources; j++) {
      feeds.add(Feed.decode(decoder));
    }
    return new Section(sectionId, sectionTitle, feeds);
  }

This compiles to:

$.Section_decode = function(decoder) {
  var sectionId, sectionTitle, nSources, feeds, j;
  sectionId = decoder.readString$0();
  sectionTitle = decoder.readString$0();
  nSources = decoder.readInt$0();
  if (typeof nSources !== "number")
    return $.Section_decode$bailout(1, decoder, sectionId, sectionTitle, nSources);
  feeds = $.ObservableList$(null, $.Feed);
  for (j = 0; j < nSources; ++j)
    feeds.add$1($.Feed_decode(decoder));
  return $.Section$(sectionId, sectionTitle, feeds);
};

$.Section_decode$bailout = function(state0, decoder, sectionId, sectionTitle, nSources) {
  var feeds, j;
  feeds = $.ObservableList$(null, $.Feed);
  for (j = 0; $.CONSTANT9.$lt(j, nSources); ++j)
    feeds.add$1($.Feed_decode(decoder));
  return $.Section$(sectionId, sectionTitle, feeds);
};

But it could be:

$.Section_decode = function(decoder) {
  var sectionId, sectionTitle, nSources, feeds, j;
  sectionId = decoder.readString$0();
  sectionTitle = decoder.readString$0();
  nSources = decoder.readInt$0();
  if (typeof nSources !== "number")
    throw $.$$throw($.ArgumentError$(nSources));
  feeds = $.ObservableList$(null, $.Feed);
  for (j = 0; j < nSources; ++j)
    feeds.add$1($.Feed_decode(decoder));
  return $.Section$(sectionId, sectionTitle, feeds);
};

@kasperl
Copy link

kasperl commented Apr 22, 2013

Added this to the Later milestone.

@kasperl
Copy link

kasperl commented May 23, 2013

Added TriageForM5 label.

@kasperl
Copy link

kasperl commented May 28, 2013

Removed TriageForM5 label.

@kasperl
Copy link

kasperl commented Jul 10, 2014

Removed this from the Later milestone.
Added Oldschool-Milestone-Later label.

@kasperl
Copy link

kasperl commented Aug 4, 2014

Removed Oldschool-Milestone-Later label.

@karlklose
Copy link
Contributor

We do no longer generate bailout functions.

@kevmoo kevmoo removed the triaged label Mar 1, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants