The first half of Law & Order’s ten-episode 21st seasonhas introduced new characters and looked exclusively to true crime for inspiration. But something is missing.
Photo: Eric Liebowitz/NBC
Occasionally, it is necessary to convene a conversation between Vulture writers to discuss an important and timely issue in culture. This time, critics Roxana Hadadi and Kathryn VanArendonk check in on the revived Law & Order’s 21st season.
“Personally, I can’t wait for Law & Order to start up again,” says Tracy Jordan in the season-five 30 Rock episode “Let’s Stay Together.” The episode aired on October 7, 2010, five months after NBC announced that its “tentpole” series (Tracy’s words) wouldn’t be coming back. The episode “Rubber Room,” in which an accused teacher planned a school shooting, would serve as the de facto finale of the Dick Wolf series that spawned a franchise and ran for two decades.
But a decade or so later, everything old is new again, and the September 2021 announcement that NBC had decided to renew Law & Order for a 21st season was a sign of the times as TV networks churn through familiar IP. Since the season premiere on February 24, though, the reception to the revived Law & Order has been curiously muted. The first half of the ten-episode seasonhas introduced new characters and looked exclusively to true crime for inspiration. But something is missing. Could it be a genuine reason why Law & Order needed to come back in the first place? Let’s discuss.
Kathryn VanArendonk: I’ll admit that I was surprised and a little dismayed when the original franchise of Law & Order was canceled in 2010. It was not reliably good TV at that point, but there was something comforting and familiar and quintessential about its existence. There it was just chugging along in the background, perpetually supplying a low level of wisecracking, often copagandistic procedural storytelling. Was it good? Probably not. But like Cheetos or cigarettes, it was something I assumed would just always exist.
So even though my — and I think many TV viewers’ — understanding of cop shows has shifted in the decade-plus since Law & Order was on the air, I was nevertheless curious and maybe even a little hopeful (I know, I know) about the new revival. It stars a few cast members from the original franchise, including Anthony Anderson as well as Sam Waterston and His Eyebrows, and promising new additions like Hugh Dancy. And in spite of the original Law & Order’s dubious depiction of policing, it did often present ambiguous, relatively skeptical readings of how justice works in this country. Maybe the revival could too? But then I actually watched it, and … hmm.
Roxana Hadadi: You’re absolutely right, Kathryn, that Law & Order was a — I apologize for this term, but it’s justified here — problematic warm blanket. It was the kind of appointment-viewing series that cast a huge shadow and became a template over the decades, not just for the spinoff series it launched (Criminal Intent; SVU) but also for other police-focused shows that responded to and/or rejected it (Homicide: Life on the Street; NYPD Blue) and then others that attempted to mimic it (whatever CBS is doing at any point; Wolf’s own Chicago franchise). After a few seasons, you knew what you were getting with an episode of Law & Order: curmudgeonly, overworked cops (often in unlikely pairs); maneuvering DAs trying to get ahead of defense attorneys (always presented as the enemy); a twist witness who appeared in the last third of the episode to add a wrinkle to what you assumed had happened (a neighbor who saw too much, a passerby who said too little). They were all components of 45 minutes or so of procedural comfort food that often doubled as a mouthpiece for a “The system is flawed, but it’s all we have” message that Wolf seems to genuinely believe and stamp upon all his shows.
With that in mind, I’m not entirely surprised that the new Law & Order, returning after political and social movements like Black Lives Matter spread throughout the country and encouraged calls to defund the police, goes all in on affirming the status quo. In the five episodes of the 21st season that have aired so far, there is no space for questioning of police methods. The show feints at that with Jeffrey Donovan’s new detective character, Frank Cosgrove, complaining about how policing has changed because of damn teenagers filming things on their damn cell phones and just itching to cancel the boys in blue, but Law & Order hasn’t actually adapted in response to that criticism. There’s a strange tonality here that makes the series feel of this moment but not anchored in it. Kathryn, are you picking up on a weird vibe too?
K.V.: Honestly, “weird vibe” is generous, but it’s a good place to start. I think there are two types of problems facing the revival season: choices it made deliberately and issues that are probably unintentional. One of the most noticeable problems in that deliberate-choices group is that so far, at least, the revival has only been green-lit for a short, ten-episode season, and of those ten episodes, every single one of them has been a hyperdramatic, politically charged ripped-from-the-headlines story. The premiere was a take on R. Kelly, the second episode was a faux-Theranos crime, the third episode was a barely disguised Gabrielle Petito story, then a Naomi Osaka–Britney Spears mash-up, and then came an unholy amalgam of Fox News–AOC–QAnon free-speech stories all stitched together.
The result has been a Law & Order that is definitely, as you say, reinforcing a systemic status quo — but also has no sense of fictional status quo for itself. There is no daily life; there are no small stories or regular people. The original Law & Order, in spite of its many flaws, often depicted something like a workaday reality. Yes, it was a warped reality where people were constantly being murdered and protected by the police, but it was a sensationalism that always felt grounded in the show’s semi-cynical, unimpressed, “This is just a job for these guys” tone. But there is no “regular” case in the revival. There are no typical crimes or mundane details. Everything is megaheightened all the time. The series wants to appear relevant but instead comes across as painfully desperate: Maybe they’ll care if it’s about Elizabeth Holmes!! Everyone liked that story, right?
R.H.: I should not be watching Law & Order and trying to puzzle through which “real person” the series is taking on this week! This approach was used every so often in the original run but became more of the DNA of the franchise with SVU, and I don’t think this revival benefits at all from it.
The tension comes from the show’s attempts to introduce new characters in a comprehensive, compelling way while also using the familiarity of ripped-from-the-headlines crimes to maintain audience interest. If, as a viewer, you’re spending your time thinking, Huh, the blood-testing lady? or Wait, is that supposed to be R. Kelly or Bill Cosby?, that’s a distraction from caring about the friction between Anderson’s Bernard and Donovan’s Cosgrove, or noticing the low-key character assassination they’ve done with Waterston’s Jack McCoy, who now seems to have no guiding principles whatsoever.
The show is doing itself a disservice by engaging with seemingly high-profile stories instead of developing its own, because the latter is what tells us who these characters are. How they interact with witnesses, what their biases or blind spots are, how they investigate and question, what links they make between evidence, how they work with or against the DA’s office — those are the foundational building blocks of these characters, and Law & Order is shoving them aside to wonder whether Britney Spears, if she were a tennis player, would bludgeon a judge to death so she could marry her working-class boyfriend. I’m not sure what viewer would care about those scenarios, so instead, it seems like a writers’ room shortcut.
The show is also missing a sense of, This is New York City. This is a real place with real problems. I think of this series in comparison to how David Simon has painted Baltimore over 30 years, and I can’t help but determine that Wolf’s current version of New York seems as much of a fantasy as his version of Chicago. Is the problem with Law & Order now that it’s become like everything else?
K.V.: You’re so right — it feels like the median of all cop shows, with very little to distinguish it from any other title in the Dick Wolf Televisual Universe. It lacks texture, both in the way it depicts New York and in the total absence of chemistry or charisma stemming from relationships between any of the main characters. Some of this probably falls under the deliberate-choices category of problems, but watching these episodes, it feels probable that there’s some unintentional or thoughtless shrugging going on here too.
Cosgrove is meant to be a red-blooded American white dude, I think, who leans conservative and is a “straight shooter” and is not down with the Kids These Days and All Their Wokeness, etc. Bernard seems built to counterbalance him and occasionally voices complaints about how justice works differently for white victims or Black suspects. But at no point does any of that jell into actual characterization for these guys. They are like AI-generated puppets whose dialogue sounds like word clouds scraped from op-eds about ideological divides in America.
Even worse, it’s boring. At some point, I realized that Cosgrove says the exact same line of dialogue two episodes in a row, and he says it at exactly the same moment in each episode. He and Bernard are questioning witnesses about ten minutes into the episode and then Cosgrove announces that they are “lying their asses off.” I like a good formulaic TV episode as much as the next brain-dead viewer, but that’s just a disrespectful lack of attention to detail!
R.H.: I did laugh when you pointed that out to me, and I think it’s indicative of the noticeable lack of creativity in these episodes. That signature Law & Order move in which an episode reset itself in the final act with additional evidence or unexpected witness testimony is mostly absent, meaning that there isn’t much tension being built in these new installments. We pretty easily go from X to Y to Z, and that pacing feels generic at this point. Even when the show does unleash a bombshell of some kind, there are no unique details. I’m thinking of the episode “Free Speech,” in which the Rush Limbaugh–Alex Jones figure who is on trial for encouraging the assassination of an AOC-like rising political star is brought down by … a hidden video of him calling his followers morons. I waited an hour for this? Or the episode “Fault Lines,” in which Bernard attempts to push back against Lieutenant Kate Dixon’s (Camryn Manheim) use of extra resources to pursue a judge’s killer, and she basically shrugs at his complaint about how the police would never do that for a murdered Black person. This is all just so unoriginal.
And I guess that leads to the most important question of all: Why bring Law & Order back? Kathryn, why are we subjecting ourselves to this?
K.V.: We do it for the readers, Roxana. We do it for the people! But I’ve also been tuning in because there’s something about watching Law & Order that for a long time felt like a referendum on what the network crime drama was like. That thing where it’s the “median” of TV — that’s also a form of barometer, a way of taking the national atmospheric-pressure reading by checking out who’s committing TV crime these days.
It’s worth mentioning that Law & Order has not disappeared as a franchise since the original was canceled. SVU, its wildly popular and successful sibling, has been happily thriving in the intervening years. But SVU has also drifted dramatically since it first premiered over 20 years ago, moving away from what was once an almost radical new approach to telling stories about rape victims, which was defaulting to believing what they say. It has become more slick, more true crime–adjacent, and more equivocating. It tends to fall back on both sides–isms, with a truly depressing “reasonable voices can disagree” approach to many of its most hot-button topics. For me, one of the chief questions about the revived Law & Order was whether it would act as a corrective to SVU’s current path or whether it would fall in line.
The answer, unfortunately, is that it is a less distinctive, less well-constructed version of the ideas currently driving SVU. It’s hard to know who a show like that is for or whether there will be an appetite for more. There may be — there’s been more appetite for procedurals with Chicago in the title than I ever would’ve thought possible. Still, I am trying to picture a conversation with someone insisting that they love this revival. All I can imagine is cocking my head quizzically and then turning to you, Roxana, and declaring that they are lying their asses off.
By submitting your email, you agree to our
Terms and Privacy Notice
and to receive email correspondence from us. This site is protected by reCAPTCHA and the Google
Privacy Policy and
Terms of Service apply.
or
Already a subscriber?
What is your email?
This email will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
Password must be at least 8 characters and contain:
Lower case letters (a-z)
Upper case letters (A-Z)
Numbers (0-9)
Special Characters (!@#$%^&*)
This password will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
You’re in!
As part of your account, you’ll receive occasional updates and offers from New York, which you can opt out of anytime.
or
Already a subscriber?
What is your email?
This email will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
Password must be at least 8 characters and contain:
Lower case letters (a-z)
Upper case letters (A-Z)
Numbers (0-9)
Special Characters (!@#$%^&*)
This password will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
You’re in!
As part of your account, you’ll receive occasional updates and offers from New York, which you can opt out of anytime.
Already a subscriber?
Already a subscriber?
`;
// integrate Sub(x) scripts and elements
if (hostname !== 'subs.nymag.com') { // do not integrate on this subdomain
document.head.appendChild(trackingScript);
document.body.insertAdjacentHTML('beforeend', subXAnimationElements);
}
There was an error processing the request. Please try again later."}).catch(e=>console.error("Error verifying email: ",e)))(r.querySelector(".content"),o.bannerCTAVerification)})):(l.remove(),s.remove()),o.dismissable||n.remove(),o.useAlertIcon||a.remove(),r.classList.add("show"),n.addEventListener("click",()=>{u(),r.classList.remove("show")})}else r.remove()}});
}, {"3":3,"6":6,"17":17,"35":35,"40":40}];
window.modules["global-nav.client"] = [function(require,module,exports){"use strict";const dom=require(4),auth=require(17),signInButton=dom.find(".user-signin"),signOutButton=dom.find(".user-signout"),globalNav=dom.find('[class^="global-nav"]'),body=dom.find("body"),dropdownItems=dom.findAll(".dropdown-wrap"),gtm=require(3),appendLandingPageParams=require(135),pageUri=require(124).getPageUri(),subscriptionPromoLinks=dom.findAll(".persist-params"),searchString=window.location.search||"";function closeDropdowns(e){let n=globalNav.querySelectorAll(".dropdown.open");dropdownItems.forEach(function(t){let i=t.querySelector(".dropdown");!n||t.contains(e.target)&&27!==e.keyCode||i.classList.remove("open")})}function gtmSendReport(e,n,t){let i={eventCategory:"ecommerce",eventAction:"componentClick",brand:e,dimension23:"global-nav",list:pageUri,pageZone:"header",variant:"nav-link"};"global-nav-link"===t&&(i.eventLabel=n.href),gtm.reportNow(i)}function updateElementTargetUrlsIfQueryStrings(e){if(searchString){const n=new URLSearchParams(searchString);let t=e.href;if(t.includes("?")){const i=t.split("?"),o=new URLSearchParams(i[1]);for(let e of n.entries())o.set(e[0],e[1]);t=`${i[0]}?${o.toString()}`,e.href=t}else e.href=`${t}?${n.toString()}`}}function init(e){const n=e.querySelectorAll(".to-landing-page");window.addEventListener("auth:init",()=>{signInButton.addEventListener("click",function(e){e.preventDefault(),auth.showEmbeddedLoginFlow("top navigation")}),signOutButton.addEventListener("click",function(e){e.preventDefault(),gtmSendReport("Sign Out",e.target,"user-info-link"),auth.logout()}),auth.isAuthenticated()&&e.classList.add("signed-in"),(auth.isSubscriber()||auth.isMobileAppRequest())&&e.classList.add("subscribed"),e.querySelectorAll(".user-link").forEach(e=>{e.classList.add("active")}),subscriptionPromoLinks.forEach(e=>{updateElementTargetUrlsIfQueryStrings(e)}),appendLandingPageParams(n)})}dropdownItems.forEach(function(e){e.addEventListener("click",function(){e.querySelector(".dropdown").classList.toggle("open")})}),body.addEventListener("click",closeDropdowns),document.addEventListener("keydown",closeDropdowns),globalNav.addEventListener("click",function(e){let n=e.target;n.classList.contains("global-nav-track")&>mSendReport(n.text,n,"global-nav-link")}),module.exports=init;
}, {"3":3,"4":4,"17":17,"124":124,"135":135}];
window.modules["aaa-module-mounting.legacy"] = [function(require,module,exports){"use strict";const _pickBy=require(221),_each=require(406),Fingerprint2=require(408),DS=require(407),Eventify=require(246);function registerGlobals(){window.DS=DS,window.Eventify=Eventify,window.Fingerprint2=Fingerprint2,DS.value("Eventify",Eventify),DS.value("Fingerprint2",Fingerprint2),DS.value("$document",window.document),DS.value("$window",window)}function mountDollarSliceComponents(){DS.service("components",["$document","$module",function(e,n){var o=_pickBy(n.definitions,e=>e.providerStrategy===n.providers.controller),r=Object.keys(o);function t(e){return o=>{try{n.get(e,o)}catch(e){logMountError(o,e)}}}_each(r,n=>{var o=e.querySelectorAll('[data-uri*="/_components/'+n+'/"]'),r=e.querySelectorAll('[data-uri$="/_components/'+n+'"]');_each(o,t(n)),_each(r,t(n))}),this.components=r}]),DS.get("components")}function logMountError(e,n){const o=e.outerHTML.slice(0,e.outerHTML.indexOf(e.innerHTML));console.error("Error attaching controller to "+o,n)}registerGlobals(),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{mountDollarSliceComponents()}):mountDollarSliceComponents();
}, {"221":221,"246":246,"406":406,"407":407,"408":408}];
window.modules["ads.legacy"] = [function(require,module,exports){"use strict";const _map=require(118),_forEach=require(107),_isString=require(268),_intersectionWith=require(409),_isEqual=require(274),_each=require(406),_debounce=require(182),_sortBy=require(205),page=require(124),visit=require(114);DS.service("adService",["Eventify","$cid","$document","$window",function(e,t,a,i){var o,n,s,r,d,c,u,l,g={},p=this,h=[],f=visit.getQueryParamsObject(["utm_campaign"]),m=document.querySelector('script[data-type="ad-a9"]'),b=[],w=!1,v=[],y=document.querySelector('script[data-name="ad-doubleverify"]');document.querySelector('script[data-name="concert-ads"]')||(i.NYM={},i.NYM.analytics={},i.NYM.analytics.adStartTime=i.performance.now(),i.googletag=i.googletag||{},i.googletag.cmd=i.googletag.cmd||[],u=i.googletag,(m||y)&&(i.googletag.cmd=i.googletag.cmd||[],i.googletag.cmd.push(function(){i.googletag.pubads().disableInitialLoad()})),m&&(l=i.setInterval(function(){void 0!==window.apstag&&void 0!==window.apstag.timeout&&(i.clearInterval(l),window.apstag.cleared=!0,l=null)},10),setTimeout(function(){l&&(i.clearInterval(l),i.googletag.pubads().refresh(),window.apstag||console.log("MESSAGE: Timeout for A9 load exceeded, aborting"))},500)),y&&(b.push(new Promise(function(e){w?e():v.push(e)})),c=i.setTimeout(T,2500)),o=function(e){var t,a,o=e.data,n=[];return o.loaded?e:(o.loaded=!0,t=null,(t=o.sizes?u.defineSlot(o.name,o.sizes,o.id).addService(u.pubads()):u.defineOutOfPageSlot(o.name,o.id).addService(u.pubads())).setTargeting("adid",o.id),f.hasOwnProperty("utm_campaign")&&t.setTargeting("utmcamp",f.utm_campaign),a=p.getAdCount(o.label),t.setTargeting("label",o.label+"_"+o.site+"-"+a),u.display(o.id),u.pubads().addEventListener("slotOnload",function(){i.NYM.analytics.firstAdLoadTime||(i.NYM.analytics.firstAdLoadTime=i.performance.now(),i.NYM.analytics.firstAdLoadLabel=e.data.label)}),n=_(o),Promise.all(b).then(function(){n?window.apstag&&window.apstag.cleared?window.apstag.fetchBids({slots:[n],timeout:window.apstag.timeout},function(){u.cmd.push(function(){window.apstag.setDisplayBids(),u.pubads().refresh([t],{changeCorrelator:!1})})}):y&&u.pubads().refresh([t],{changeCorrelator:!1}):u.pubads().refresh([t],{changeCorrelator:!1})}),e.slot=t,e)},n=function(e){var a,i,o,n=t(),s=e.getAttribute("data-name"),r=e.getAttribute("data-sizes"),d=e.getAttribute("data-label"),c=e.getAttribute("data-site");n=e.id,r&&r.length?(r=r.split(","),a=[],_map(r,function(e){e=e.split("x"),i=parseInt(e[0]),o=parseInt(e[1]),a.push([i,o])})):(e.classList.add("oop"),a=!1),this.data={id:n,name:s,sizes:a,loaded:!1,label:d,site:c},g[n]=this},r=function(e){u.cmd.push(function(){var t=o(e);g[e.data.id]=t})},s=function(e){var t=[];e.slot?(t=_(e))&&window.apstag&&window.apstag.cleared&&window.apstag.fetchBids({slots:[t],timeout:window.apstag.timeout},function(){u.cmd.push(function(){window.apstag.setDisplayBids(),u.pubads().refresh([e.slot],{changeCorrelator:!1})})}):e&&r(e)},u.cmd.push(function(){var e,t,o,n=page.getMeta("article:tag"),s=page.getMeta("author"),r=i.location.href,d=(e=a.head.querySelector(".head-gtm"),t=a.body.querySelector(".gtm"),e&&"top"===e.getAttribute("data-gtm")?"gtmtop":t&&"bottom"===t.getAttribute("data-gtm")?"gtmbottom":"");o=[],_forEach([n,s,d],function(e){_forEach(e.split(","),function(e){(e=e.trim().toLowerCase().replace(/\s/g,"-").replace(/\'|\’/g,"")).length&&o.push(e)})}),u.pubads().setTargeting("kw",o),u.pubads().setTargeting("entry_group",o),r=r.slice(r.lastIndexOf("/")+1),u.pubads().setTargeting("pn",r),u.companionAds().setRefreshUnfilledSlots(!0),u.pubads().enableAsyncRendering(),u.enableServices()}),this.load=r,this.create=function(e){return new n(e)},this.refresh=function(e){var t;_isString(e)?(t=this.getById(e),s(t)):s(e)},this.remove=function(e){var t=e.data.id;a.getElementById(t).innerHTML=""},this.getAdCount=function(e){var t,a=0,i=Object.keys(g);return _each(i,function(i){(t=g[i]).data.loaded&&t.data.label===e&&a++}),a},this.getById=function(e){return g[e]},d=_debounce(function(){var e={TopLeaderboard:1,RightColTopMPU:2,outOfPage:99,"homepageTakeover/TopLeaderboard":1},t=_sortBy(h,function(t){return e[t.data.label]||10});_forEach(t,function(e){return e.data.sizes?r(e):i.setTimeout(function(){r(e)},2e3)}),y&&window.PQ.cmd.push(()=>{try{window.PQ.loadSignals(["ids","bsc","vlp"],T)}catch(e){T(),console.error(`There has been an error loading Double Verify signals: ${e}`)}}),h=[]},10),this.addToPageLoadQueue=function(e){h.push(e),d()});function _(e){var t,a=e.sizes;return a=_intersectionWith(a,[[970,250],[970,90],[728,90],[300,600],[300,250],[320,100],[320,50]],_isEqual),e.sizes&&e.sizes.length&&(t={slotID:e.id,sizes:a,slotName:e.label}),t}function T(){i.clearTimeout(c),w=!0,_forEach(v,function(e){e()})}}]);
}, {"107":107,"114":114,"118":118,"124":124,"182":182,"205":205,"268":268,"274":274,"406":406,"409":409}];
window.modules["cid.legacy"] = [function(require,module,exports){"use strict";DS.service("$cid",function(){var r=Math.floor(100*Math.random());return function(){return"cid-"+ ++r}});
}, {}];
window.modules["client.legacy"] = [function(require,module,exports){"use strict";require("cid.legacy"),require("ads.legacy"),require("facebook.legacy"),require("aaa-module-mounting.legacy");
}, {"cid.legacy":"cid.legacy","ads.legacy":"ads.legacy","facebook.legacy":"facebook.legacy","aaa-module-mounting.legacy":"aaa-module-mounting.legacy"}];
window.modules["facebook.legacy"] = [function(require,module,exports){"use strict";DS.service("facebook",[function(){this.fb=function(i){window.FB&&window.FB[i].apply(this,Array.prototype.slice.call(arguments,1))}}]);
}, {}];
require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o typeof key === 'string' && key.match(/\.legacy$/)).forEach(key => window.require(key));
}
function tryToMount(fn, el, name) {
try {
fn(el); // init the controller
} catch (e) {
const elementTag = el.outerHTML.slice(0, el.outerHTML.indexOf(el.innerHTML));
console.error(`Error initializing controller for "${name}" on "${elementTag}"`, e);
}
}
/**
* mount client.js component controllers
*/
function mountComponentModules() {
Object.keys(window.modules).filter(key => typeof key === 'string' && key.match(/\.client$/)).forEach(key => {
let controllerFn = window.require(key);
if (typeof controllerFn === 'function') {
const name = key.replace('.client', ''),
instancesSelector = `[data-uri*="_components/${name}/"]`,
defaultSelector = `[data-uri$="_components${name}"]`,
instances = document.querySelectorAll(instancesSelector),
defaults = document.querySelectorAll(defaultSelector);
for (let el of instances) {
tryToMount(controllerFn, el, name);
}
for (let el of defaults) {
tryToMount(controllerFn, el, name);
}
}
});
}
// Make sure that a `window.process.env.NODE_ENV` is available in the client for any dependencies,
// services, or components that could require it
// note: the `` value is swapped for the actual environment variable in /lib/cmd/compile/scripts.js
window.process = window.process || {};
window.process.env = window.process.env || {};
if (!window.process.env.NODE_ENV) {
window.process.env.NODE_ENV = '';
}
// note: legacy controllers that require legacy services (e.g. dollar-slice) must
// wait for DOMContentLoaded to initialize themselves, as the files themselves must be mounted first
mountLegacyServices();
mountComponentModules();
// ]]