Cruz and Rubio had the worst of it last night:

The frontrunner might have been wise to skip the debate after all. While he held a dueling event across town, Ted Cruz and Marco Rubio were confronted with video montages of their past statements on immigration, putting them each on the defensive about a contentious issue that has been elevated to new heights in the Trump era.

Both Cruz and Rubio were forced to answer for their past slipperiness and opportunism on immigration, and neither of them handled it especially well. Rubio’s performance was jittery and agitated, and he spoke even more quickly than he usually does. Cruz seemed to disappear for long stretches of the debate, though he and Rubio had the most speaking time by far. Bush had a surprisingly good night, and even scored a few hits on Rubio for abandoning the Gang of Eight bill. He echoed Lindsey Graham in saying that Rubio had “cut and run” during the debate over the bill, which had the virtue of being both true and embarrassing for Rubio. The change from his previous debate performances suggests that Bush is able to do fine among conventional politicians, but he has no idea how to handle or respond to Trump. Insofar as Bush’s performance showed that he has a reason to still be in the race, he benefited the most of any of the candidates that were on stage.

Rand Paul didn’t waste his chance back on the main stage. He made some solid arguments against NSA bulk collection, and attacked Syria hawks over their desire to fight on both sides of the civil war:

The question is, should we be bombing both sides of the war? Some want (ph) to topple Assad. In fact, they want to bomb ISIS and Assad simultaneously.

Overall, he put in another creditable appearance, and that may give him a boost going into Iowa.

The moderators started off with fairly pointless process questions that the candidates used as excuses to reuse their stump speech lines. The debate became a little more substantive as the evening wore on, and the moderators were aggressive in highlighting the more embarrassing aspects of some of candidates’ records. For example, Christie had to talk about “Bridgegate,” and Rubio had his past statements about opposing amnesty thrown in his face. Cruz also had to defend his past maneuvering on immigration, but he got the better of Rubio when he said, “We both made the identical promises. But when we came to Washington, we made a different choice.” Rubio’s support for and co-sponsorship of the Gang of Eight bill continue to drag his campaign down, and as we saw last night he doesn’t have a terribly good answer for that.

The discussion of foreign policy was mostly ridiculous as usual. Rubio was especially keen to boast about his hard-line views, and tried to turn every awkward and unwelcome question into an opening to rant about ISIS or Iran to use them as a distraction from his own problems. His go-to description of almost every adversary was “apocalyptic,” which was in keeping with his pattern of grossly exaggerating foreign threats. He pledged to renege on the nuclear deal and threatened U.S. allies with secondary sanctions:

We will — when I am president of the United States, on my first day in office, we are canceling the deal with Iran, and nations will have to make a choice. They can do business with Iran, or they can do business with America, and I am very confident they’re going to choose America before they choose the Iranian economy.

In other words, he would penalize mostly friendly countries if they refused to break an agreement that is already successfully restricting Iran’s nuclear program. Unfortunately, no one challenged him on this or pointed out the harm this would do to relations with numerous allies and trading partners. It was in these answers when his overexcited and speedy delivery made him seem very unsteady, and he didn’t convey either the seriousness or the calm that I think most people would want to see from someone seeking the presidency. I’m not a Rubio fan, but I think it’s fair to say that he had his worst debate last night when he could least afford it.

Cruz stuck to his idiotic “carpet bombing” rhetoric about ISIS, and repeated the false claim that carpet bombing was used during the Gulf War. Cruz either refuses to admit that he erred when he first mentioned carpet bombing, or he is so ignorant about these things that he doesn’t understand why it would be atrocious to do what he’s proposing. All the hawks want to make rules of engagement against ISIS more lax, which in practice means that more civilians will be killed by the bombing campaign. Bush endorsed training “a Sunni-led force in Syria to take out ISIS,” which omitted that none of the states in the region wants to commit ground forces to the war. Kasich talked a lot about organizing a military coalition against ISIS, but there wasn’t much else to his foreign policy remarks this time.

It can’t have hurt Trump to be out of the line of fire all night, and his next two closest competitors in Iowa took some potentially very damaging hits. Cruz and Rubio didn’t do very well to reassure wavering supporters and skeptical voters, and Bush showed that he couldn’t be completely written off just yet. To the extent that the debate weakened Rubio in New Hampshire, Bush and Kasich gained from the debate. Paul did a good job of offering a non-Trump alternative to the deranged hawkishness of the other candidates. It’s possible some people will punish Trump for skipping the debate, but it seems unlikely to do him any more harm than was done to his rivals. The debate certainly hurt Cruz and Rubio, but didn’t do enough to alter the race very much.