Bouncing from Mindhunter to Little Shop of Horrors, Jonathan Groff is finally having fun.
ByJackson McHenry,
a Vulture critic covering theater, film, and TV
Photo: Lucas Michael. Grooming by Melissa DeZarate at The Wall Group.
Photo: Lucas Michael. Grooming by Melissa DeZarate at The Wall Group.
Within minutes of my meeting Jonathan Groff, he asks if I would like a slice of cherry pie, and then, only a short time later, if I would like to be eaten by a giant plant. The first I readily accept because Groff and the rest of the cast of Little Shop of Horrors have thoroughly analyzed the desserts they picked up for a bus ride down from New York to the suburban Philadelphia puppet studio where they’re rehearsing for the day, and they’ve all concluded it’s the best option. The idea of being eaten by a plant seems a little less palatable, considering the contortions involved in entering the hippopotamus-esque maw of the man-eating Audrey II, which is operated by several puppeteers, and because I’m not sure if Groff is making a serious offer. I learn quickly that he is always offering you things, and those offers are always serious.
The puppet in question represents the largest form of Audrey II, a sassy carnivorous horticultural oddity that convinces Seymour, an awkward flower-shop assistant, to commit murder in the pursuit of fame, fortune, and a suburban life with the original Audrey, a human who works with him. The day I visit, Groff, playing the misfit Seymour (despite good looks that actor Christian Borle, who plays the maniacal dentist, Orin, describes as “scrumptious”), and his castmates are climbing inside Audrey II one by one, figuring out how each of them will die. Wearing a hat from Beyoncé and Jay-Z’s “On the Run II” tour, Groff jumps inside wielding a floppy machete, which is so un-aerodynamic it keeps getting stuck in Audrey II’s lips. Groff suggests a real machete prop would be sturdier, and they try substituting an umbrella, which flies out more cleanly. Michael Mayer, the director, says with satisfaction, “It’s a belch!”
Staging this revival of Little Shop is “illegal fun,” as Groff puts it. The original ran from 1982 to 1987 but never transferred to Broadway, at the insistence of writer-lyricist Howard Ashman, who wanted to preserve the show’s off-kilter spirit in a smaller space. Ashman and composer Alan Menken would go on to fill the Disney Renaissance — which consisted of films like The Little Mermaid and Beauty and the Beast — with the Marie’s Crisis–ready melodies and queer subversions you can already hear in Little Shop (Ashman died of AIDS-related complications in 1991). Despite a Broadway staging that kicked off in 2003, this version is staying put at the Westside Theatre Off Broadway in hopes of preserving the quirky spirit of the original. There’s a lot of laughter in rehearsal as well as dress codes like a “kimono Wednesday,” which Mayer enforces by handing me a spare kimono when I drop in that day.
I can’t imagine anyone who is consistently involved in or adjacent to homicide having a better time. In addition to playing a murderously nice guy in Little Shop, Groff stars in Netflix’s David Fincher–produced drama Mindhunter, playing an FBI agent who interviews serial killers; the show is based on the real work of John Douglas, who was one of the first criminal profilers. Considering he’s no big fan of true crime, Groff is somewhat confused about how he became a poster boy for gore and mutilation, though he’s enjoying the texts from friends who point out that even when he does musical comedy, there’s a dark edge involved. A few days after we meet in Philadelphia, we’re talking over breakfast at the cozy Grey Dog in Chelsea, where he insists on paying for everything, picking up all the water and utensils, and getting up from the table to refill my coffee cup when it’s empty.
Groff in Mindhunter.
Photo: Courtesy of Netflix
Groff signed up to star in Little Shop this spring after careful consideration, by which I mean he got the offer and then listened to the original cast recording on repeat for a whole weekend. He’d never played Seymour before, unlike the majority of white male theater actors, but he had positive memories of seeing the first performance of the 2003 Broadway version just after high school, when he was rehearsing the role of Rolf in a non-Equity tour of The Sound of Music. “I wanted to make sure that I’m bleeding for it eight times a week,” he says, which is his measure for doing musicals; he wants to make sure he won’t get bored with the material. Even now, when I assume he might want a break from it during rehearsals, Groff still has the album on repeat. “I never went to college, and I’m not educated, really, so I couldn’t say, like, intellectually why that is,” he says. “When I listened to it, it shot through my heart.”
There’s a clue, however, in the way he remembers obsessing over the film version of the show as a seventh-grader, standing in his kitchen with the song “Skid Row” on repeat — specifically when Seymour sings, “Someone show me a way to get outta here.” It was an appealing message to a closeted kid whom Groff describes as just “a sweaty, uncomfortable person with a secret that was so deep-rooted I wasn’t even flirting with the idea of being myself.” With a little distance from that version of himself (the child of a phys-ed teacher and a horse trainer, growing up in Lancaster, Pennsylvania, and occasionally having to clean stables on the weekends), Groff recalls the kinds of tells that seem obvious in retrospect, like, say, listening to “Skid Row” on repeat. Or developing an obsession with I Love Lucy, which he still watches before going to bed. Or dancing along to the Donna Reed’s Dinner Party album when his parents weren’t home. There’s a similar longing in Little Shop, which has the queerest kind of perspective on its central couple, as Audrey and Seymour imagine an unreachable, heteronormative life away from skid row and where she looks “like Donna Reed.”
If there’s a murderous kinship between Little Shop and Mindhunter, it extends to the shows’ shared skepticism about that white-picket-fence-style normalcy. Holden, Groff’s profiler character, is a cardboard cutout of a man with a girlfriend who introduces him to 1970s-style sexual liberation, but he is ultimately more fascinated with the deviancy of the killers he’s interviewing. To play him, Groff shuts down his charisma, amassing such emptiness between his angular jaw and his eyebrows that you wonder if he’ll slip into deviancy himself. It’s a performance of square, even sinister straightness that feels close to the best-little-boy performances of closeted queer men, though what seems to thrill Holden most in the show are his interviews with killers. “Sexuality is so complicated, and the people I’ve ended up working with who have cast me in straight parts are interested in looking at things in a complicated way,” Groff says, noting that he feels the argument about whether gay actors can play straight, or vice versa, has gotten “sillier” as time goes on. “Being out and gay and being myself, it allowed me to find people that weren’t closed-minded.”
Groff came out when he was 23, without directly consulting his agent, after he’d become an idol to the nation’s theater teens of Facebook by starring as the sexy, rebellious, tousle-haired Melchior in Spring Awakening. “I was so compartmentalized,” he says, “singing about sex but then not talking about it.” He remains thankful for the way Mayer, who also directed that show, choreographed the explicit sex between himself and Lea Michele’s Wendla clinically, without asking them about their own experiences. He hadn’t spent too much time worrying about the aftereffects of coming out on his career, which were more limiting in 2009 than they are now. “I did think I might not be seen as a romantic lead, but ultimately I was okay with that,” he says, explaining that he was in love at the time and didn’t want to hide it. “At 23, I’d rather just have a real romantic relationship than pretend to have one with a girl.”
Several years after coming out, Groff booked a leading role in HBO’s Looking, a comedy-drama about gay men in San Francisco, which he calls one of the most fulfilling roles he’s had. The series ran for two seasons and got a wrap-up movie but never quite found a viewership, even among queer audiences, instead receiving, as he puts it, “a total mixed bag of very extreme reactions.” Some of that was because people just didn’t like the show — which was often slower, more interior, and whiter and fitter than people may have wanted — and some of it was because it was “carrying a lot of weight; there wasn’t a lot of specifically gay content on a major cable network.” To Groff, making the show opened him up to the possibility of using material from his own experience in his work. Among the cast and crew, “we would talk about stories about PrEP and uncut dicks and monogamy,” he recalls, among “so many stories about anal douching,” and those anecdotes would make their way into the scripts. He was used to a sort of “closeted training of the mind” to abstract himself from his own experience. Looking taught him he could use it.
Recently, Groff has developed an ability to end up near the center of cultural sensations. He stepped in for Brian d’Arcy James as Hamilton’s fey Britpop version of King George III midway through the show’s Off Broadway run. It was a somewhat ideal gig, given that he was onstage for only about nine minutes a night, performed crowd-pleasing kiss-off songs, met Beyoncé, earned a Tony nomination, and got a lot of reading done backstage. This fall, he’s in Disney’s sequel to Frozen, where he returns to play Princess Anna’s rugged (at a Disney-appropriate level) love interest, Kristoff. In the first movie, while Idina Menzel’s Elsa got the vocal-cord shattering “Let It Go,” Groff sang only a few lines of melody between Kristoff and his reindeer, Sven. This time around, he’s putting his Broadway training to use with a full-length solo. It’s the second one he recorded for the movie, since the writers had one idea for a Kristoff piece (“a jam”) but then canned that song while promising Groff they’d write something different, which he didn’t quite believe. “Then they fucking wrote that other song,” he says, characteristically effusive. “I was like, Wow, and the animation of the song is so brilliant.”
As personable as Groff is and as successful as he has become — and as beloved, especially among theater fans and people like my mother — there’s a point at which he maintains a certain distance, in what feels like a way to stem his own impulses. He doesn’t use any social media, though he did consider it when Looking was struggling, before he realized “I’d have to be good at it and want to do it, and I don’t.” He has never thrown himself a birthday party, because the impulse to make sure everyone’s having a good time would stress him out too much. In behavior that reminds me of both a secret agent and Kim Kardashian, he regularly goes through and deletes all his texts after responding to each of them. “I want to make sure I get back to everyone,” he says, holding his iPhone up in front of me to reveal the remarkably few surviving messages.
Before Groff gets up to leave breakfast and travel to rehearsal by way of the single-speed bicycle he rides around Manhattan, we end up talking about the larger trajectory of his career. Considering that he’s scaling down for a revival run of a musical Off Broadway, was he ever the kind of actor who thought of his work as building up to something? A big film? A franchise? “I think I gave that up when I came out of the closet,” he says. “I gave up the idea that there was an end goal or ideal or some kind of dream to work toward.” An image appears in my mind of the life Audrey sings about in Little Shop, a place that’s comfortable, traditional, and expected, somewhere that’s green. “When I moved to New York, what I wanted was to be on Broadway. That happened and then I came out, and it’s sort of been anybody’s guess since then,” Groff says. “I like when something makes me cry or I can’t stop listening to it. Okay, I want to do that.”
Little Shop of Horrors is in previews and opens October 17 at Westside Theatre Upstairs. Buy tickets here.
*This article appears in the September 16, 2019, issue of New York Magazine. Subscribe Now!
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()}});
}, {"1":1,"6":6,"12":12,"35":35,"40":40}];
window.modules["global-nav.client"] = [function(require,module,exports){"use strict";const dom=require(3),auth=require(12),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(1),appendLandingPageParams=require(136),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 o=t.querySelector(".dropdown");!n||t.contains(e.target)&&27!==e.keyCode||o.classList.remove("open")})}function gtmSendReport(e,n,t){let o={eventCategory:"ecommerce",eventAction:"componentClick",brand:e,dimension23:"global-nav",list:pageUri,pageZone:"header",variant:"nav-link"};"global-nav-link"===t&&(o.eventLabel=n.href),gtm.reportNow(o)}function updateElementTargetUrlsIfQueryStrings(e){if(searchString){const n=new URLSearchParams(searchString);let t=e.href;if(t.includes("?")){const o=t.split("?"),i=new URLSearchParams(o[1]);for(let e of n.entries())i.set(e[0],e[1]);t=`${o[0]}?${i.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()&&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;
}, {"1":1,"3":3,"12":12,"124":124,"136":136}];
window.modules["aaa-module-mounting.legacy"] = [function(require,module,exports){"use strict";const _pickBy=require(221),_each=require(408),Fingerprint2=require(407),DS=require(406),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(408),_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,"408":408,"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","aaa-module-mounting.legacy":"aaa-module-mounting.legacy","ads.legacy":"ads.legacy","facebook.legacy":"facebook.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();
// ]]