-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
trimという関数がどうやらグローバル名前空間を破壊しているっぽい。
AeのMotion Tools Proという外部拡張機能が、trimという関数をグローバルに定義するようなのだが、このリポジトリで作成されたスクリプトの実行後、グローバルのtrimがundefinedになるみたい。
es5-shimのdefinePropertiesの実装が怪しいっぽく、この部分でどうやらスコープが不明なtrimという関数が定義されてしまってるっぽい(ほかの箇所からtrimにアクセスするようなコードも見られる)。
defineProperties(
StringPrototype,
{
// https://blog.stevenlevithan.com/archives/faster-trim-javascript
// http://perfectionkills.com/whitespace-deviations/
trim: function trim() {
"use strict";
if (typeof this === "undefined" || this === null) {
throw new TypeError("can't convert " + this + " to object");
}
return $String(this)
.replace(trimBeginRegexp, "")
.replace(trimEndRegexp, "");
},
},
hasTrimWhitespaceBug
);対策として、この真下(2006行目)にtrimを宣言するコードを挿入することで、terserの結果なのか、グローバルのtrimを破壊しないようになった。
var trim = call.bind(StringPrototype.trim);ほかの関数群でも確かめる必要がある。
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels