# 2024년 6월 1일 작업일지

### 터보팩 ES Analysis 프로파일링

팀원이 요청한 것인데, next.js 앱에 관한 것이었다.

### **터보팩**`RcStr` 최적화 PR

* [**https://github.com/vercel/turbo/pull/8221**](https://github.com/vercel/turbo/pull/8221)
    
* [**https://github.com/vercel/next.js/pull/66262**](https://github.com/vercel/next.js/pull/66262)
    

노가다라 주말이지만 조금 작업했다. 맥북이 와서 도중에 멈췄다.

근데 맥북 마이그레이션 끝내고 `rust-toolchain` 관련 커밋들 머지하고 M3 맥북으로 작업하려고 보니까 [servo/pathfinder](https://github.com/servo/pathfinder) 가 새로운 `rust-toolchain`에서 빌드가 안 됐다. 그래서 일단 팀 채널에 얘기하고 미뤄뒀다.

### SWC Minifier 버그 수정

* [https://github.com/swc-project/swc/pull/8987](https://github.com/swc-project/swc/pull/8987)
    

황당하게도 `resolver` 패스의 문제였다.

```javascript
"use strict";
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([[854], {

/***/ 3712:
/***/ (function (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {

/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   $Q: function () { return /* binding */ C; },
/* harmony export */   Ev: function () { return /* binding */ B; },
/* harmony export */   e_: function () { return /* binding */ I; },
/* harmony export */   jU: function () { return /* binding */ e; }
    /* harmony export */
});
            /* unused harmony exports ACTION_ELEMENTS, SbbScrollHandler, breakpoints, findInput, findReferencedElement, hostContext, isAndroid, isBlink, isBreakpoint, isChromium, isEdge, isFirefox, isIOS, isNextjs, isSafari, isTrident, isWebkit, pageScrollDisabled */
            let a;
            try {
                a = typeof Intl < "u" && Intl.v8BreakIterator;
            } catch (e) {
                a = !1;
            }
            const e = () => typeof document == "object" && !!document, l = () => e() && /(edge)/i.test(navigator.userAgent), c = () => e() && /(msie|trident)/i.test(navigator.userAgent), y = () => e() && !!(window.chrome || a) && typeof CSS < "u" && !l() && !c(), g = () => e() && /AppleWebKit/i.test(navigator.userAgent) && !y() && !l() && !c(), w = () => e() && /iPad|iPhone|iPod/.test(navigator.userAgent) && !("MSStream" in window), v = () => e() && /(firefox|minefield)/i.test(navigator.userAgent), A = () => e() && /android/i.test(navigator.userAgent) && !c(), E = () => e() && /safari/i.test(navigator.userAgent) && g(), p = () => !!globalThis.next, S = () => {
                var t, n;
                return (n = (t = navigator.userAgentData) == null ? void 0 : t.brands) == null ? void 0 : n.some((o) => o.brand == "Chromium");
            }, x = (/* unused pure expression or super */ null && ([
                "zero",
                "micro",
                "small",
                "medium",
                "wide",
                "large",
                "ultra"
            ]));
      
        }),

}]);
```

`jU` 함수의 `e`가 `const`로 선언된 `e`인지 `catch`로 선언된 `e`인지 구분이 잘못된 게 문제의 원인이었다. 고치는 것은 어렵지 않았다.
