Caleb Johnson’s review published on Letterboxd:
Dude, I actually don't care. I really don't. This is legitimately my favorite Shyamalan movie, so what?
Yeah, you heard that right. "Trap" is a fucking blast. And look, sure, I understand that this isn't by any means a masterpiece. Okay? So much bad acting. I understand. But what if I told you that the cheesy acting was actually something that I really liked about this? The way this whole thing's written and acted feels like Shyamalan directed an episode of "Twin Peaks" on accident.
So much accidental comedy too, and I was eating it ALL up. I was absolutely hooked on this from start to finish, having so much fun the whole way through. It's suspenseful, it's corny, it's ridiculous, and it's just downright goofy. I loved it. And you know what? Every single one of the original songs made for Lady Raven in this? All bangers. Those were deadass some pretty good songs. So ten extra points for Shyamalan for that.
I totally understand if you don't like this or think it's another Shyamalan stinker. But I went into this with no expectations, thinking I'd have a decent amount of fun. So when I found myself leaving the theater after having as much of a blast with this as I did, I was psyched.
' ].join(''); if ( adsScript && adsScript === 'bandsintown' && adsPlatforms && ((window.isIOS && adsPlatforms.indexOf("iOS") >= 0) || (window.isAndroid && adsPlatforms.indexOf("Android") >= 0)) && adsLocations && adsMode && ( (adsMode === 'include' && adsLocations.indexOf(window.adsLocation) >= 0) || (adsMode === 'exclude' && adsLocations.indexOf(window.adsLocation) == -1) ) ) { var opts = { artist: "", song: "", adunit_id: 100005950, div_id: "cf_async_e3293d47-7afb-4efd-8753-3bec621dadbf" }; adUnit.id = opts.div_id; if (target) { target.insertAdjacentElement('beforeend', adUnit); } else { tag.insertAdjacentElement('afterend', adUnit); } var c=function(){cf.showAsyncAd(opts)};if(typeof window.cf !== 'undefined')c();else{cf_async=!0;var r=document.createElement("script"),s=document.getElementsByTagName("script")[0];r.async=!0;r.src="//srv.tunefindforfans.com/fruits/apricots.js";r.readyState?r.onreadystatechange=function(){if("loaded"==r.readyState||"complete"==r.readyState)r.onreadystatechange=null,c()}:r.onload=c;s.parentNode.insertBefore(r,s)}; } else { adUnit.id = 'pw-e3293d47-7afb-4efd-8753-3bec621dadbf'; adUnit.className = 'pw-div -tile300x250 -alignleft -bottommargin'; adUnit.setAttribute('data-pw-' + (renderMobile ? 'mobi' : 'desk'), 'med_rect_btf'); if (target) { target.insertAdjacentElement('beforeend', adUnit); } else { tag.insertAdjacentElement('afterend', adUnit); } window.addEventListener('DOMContentLoaded', (event) => { adUnit.insertAdjacentHTML('afterend', kicker); window.ramp.que.push(function () { window.ramp.addTag('pw-e3293d47-7afb-4efd-8753-3bec621dadbf'); }); }, { once: true }); } } tag.remove(); })(document.getElementById('script-e3293d47-7afb-4efd-8753-3bec621dadbf'));
' ].join(''); if ( adsScript && adsScript === 'bandsintown' && adsPlatforms && ((window.isIOS && adsPlatforms.indexOf("iOS") >= 0) || (window.isAndroid && adsPlatforms.indexOf("Android") >= 0)) && adsLocations && adsMode && ( (adsMode === 'include' && adsLocations.indexOf(window.adsLocation) >= 0) || (adsMode === 'exclude' && adsLocations.indexOf(window.adsLocation) == -1) ) ) { var opts = { artist: "", song: "", adunit_id: 100005950, div_id: "cf_async_4ec45396-fc35-4e97-af65-26511c7cd3ff" }; adUnit.id = opts.div_id; if (target) { target.insertAdjacentElement('beforeend', adUnit); } else { tag.insertAdjacentElement('afterend', adUnit); } var c=function(){cf.showAsyncAd(opts)};if(typeof window.cf !== 'undefined')c();else{cf_async=!0;var r=document.createElement("script"),s=document.getElementsByTagName("script")[0];r.async=!0;r.src="//srv.tunefindforfans.com/fruits/apricots.js";r.readyState?r.onreadystatechange=function(){if("loaded"==r.readyState||"complete"==r.readyState)r.onreadystatechange=null,c()}:r.onload=c;s.parentNode.insertBefore(r,s)}; } else { adUnit.id = 'pw-4ec45396-fc35-4e97-af65-26511c7cd3ff'; adUnit.className = 'pw-div'; adUnit.setAttribute('data-pw-' + (renderMobile ? 'mobi' : 'desk'), 'sky_btf'); if (target) { target.insertAdjacentElement('beforeend', adUnit); } else { tag.insertAdjacentElement('afterend', adUnit); } window.addEventListener('DOMContentLoaded', (event) => { adUnit.insertAdjacentHTML('afterend', kicker); window.ramp.que.push(function () { window.ramp.addTag('pw-4ec45396-fc35-4e97-af65-26511c7cd3ff'); }); }, { once: true }); } } tag.remove(); })(document.getElementById('script-4ec45396-fc35-4e97-af65-26511c7cd3ff'));