John McDonnell has accused Boris Johnson of “hating” working-class people, as the shadow chancellor insisted Labour is poised to deliver a bigger “shock” than at the last election.

In his strongest criticism of the prime minister yet, McDonnell lashed out at his past description of the less well-off as “drunk, criminal, aimless, feckless and hopeless” to warn voters of the Tories’ true feelings towards them.

“When they attack me, or Jeremy, we know it’s not really about us. It’s about you, they hate the people of this country,” Mr McDonnell told an event in London.

“They think – and I quote the prime minister – that you’re drunk and criminal, they hate the idea you might dream of a better life.

“They hate the idea you might want real change in how things have been done for so long, and a say in how things are done in future.”

The attack came as he brushed off growing evidence that Mr Johnson will be heading back to No 10 on Friday morning, with a big lead in The Independent’s new poll and many others.

Rejecting suggestions that Labour heartland voters are poised to switch to the Conservatives, Mr McDonnell insisted: “They have had enough. I think they want real change.

“Some people were shocked in the 2017 general election and I think they will be even more shocked this time around.”

As he announced that a Labour government would hold a quickfire Budget on 5 February, Mr McDonnell also:

Top 10 marginal seats to watch at the general election Show all 10 1 /10 Top 10 marginal seats to watch at the general election Top 10 marginal seats to watch at the general election North East Fife Currently held by the SNP with a majority of 2 Getty Top 10 marginal seats to watch at the general election Kensington Currently held by Labour with a majority of 20 Getty Top 10 marginal seats to watch at the general election Perth and North Perthshire Currently held by the SNP with a majority of 21 Getty Top 10 marginal seats to watch at the general election Dudley North Currently held by independent, formerly Labour, MP Ian Austin with a majority of 22 LivingInMediocrity Top 10 marginal seats to watch at the general election Newcastle-under-Lyme Currently held by Labour with a majority of 30 Derek Harper Top 10 marginal seats to watch at the general election Southampton Itchen Currently held by the Conservatives with a majority of 31 Rob Candish Top 10 marginal seats to watch at the general election Richmond Park Currently held by the Conservatives with a majority of 45 Robin Webster Top 10 marginal seats to watch at the general election Crewe and Nantwich Currently held by Labour with a majority of 48 Jaggery Top 10 marginal seats to watch at the general election Glasgow South West Currently held by the SNP with a majority of 60 Alec MacKinnon Top 10 marginal seats to watch at the general election Glasgow East Currently held by the SNP with a majority of 75 Christine Johnstone

* Rejected warnings of "capital flight” if Jeremy Corbyn wins, claiming: “My fear is that the pound will start going up because of our investment plans."

* Said he would make an “assessment” at the time about how to vote in the fresh Brexit referendum that Labour has promised, but added: "I've said consistently I can't see a better deal than Remain.”

* Failed to rule out taking over as an “interim leader” if Labour loses and Mr Corbyn quits – insisting only that the issue would not rise because the party will win.

* Argued voters needed to be convinced that Labour’s radicalism is possible because austerity and free-market economics had “dulled people’s sense of what’s possible, just as they were intended to do”.

* Did not rule out breaking up the tech giants, saying: “That will be a discussion we will be having.”

Mr Johnson dismissed the working class as “likely to be drunk, criminal, aimless, feckless and hopeless”, in a column for The Spectator magazine in 1995.

Mr McDonnell made an emotional appeal to the public to vote for change, suggesting that their “children or grandchildren” would ask them: “What did you do to end that world of rough sleeping and food banks?

“What did you do to save the NHS and stop the Tories selling it off? What did you do to bring back pride to our town?