Dokümantasyon
/
VM Obfuscation
/

Strict Mode Uyumluluğu

Strict Mode Uyumluluğu

Önemli

VM obfuscation, kodun strict mode içinde çalışıp çalışmadığını derleme anında bilmek zorundadır. Kodunuz strict mode davranışına dayanıyorsa bunu açıkça bildirmeniz gerekir.

Neden? VM, kodunuzu yürütmeden önce bayt koduna derler. Strict mode'a özgü davranışlar (örn. this bağlaması, yinelenen parametreler, arguments nesnesinin davranışı) için doğru bayt kodunu üretebilmek amacıyla derleme sırasında strict mode bağlamını bilmesi gerekir.

strictMode seçeneği, obfuscator aracının nasıl karar vereceğini belirler. strictMode: null (varsayılan) ve strictMode: false ile kod yalnızca bunu bildirdiği yerlerde strict olarak ele alınır: açık bir 'use strict'; direktifi, ES modül söz dizimi veya sınıf metotları. Geri kalan her şey sloppy mode olarak derlenir. strictMode: true tüm girdiyi strict olarak ele alır. Son paketin gerçekte çalıştığı bağlamla eşleştirin.

Dosya düzeyinde strict mode

Tüm kod için strict mode'u etkinleştirmek üzere dosyanızın en üstüne 'use strict'; ekleyin:

JavaScript

Fonksiyon düzeyinde strict mode

Yalnızca belirli fonksiyonların strict mode'a ihtiyacı varsa 'use strict'; ifadesini bu fonksiyonların içine ekleyin:

JavaScript

Yaygın sorun: Paketleyiciniz veya derleme aracınız 'use strict'; ifadesini otomatik olarak ekliyorsa (örneğin CommonJS veya düz betik kaynaklarını strict mode çıktısıyla saran bir paketleyici) ancak kaynağı paketlemeden önce obfuscate ediyorsanız, VM strict mode'dan haberdar olmaz. Ya direktifi kaynak dosyalarınıza ekleyin, ya strictMode: true ayarlayın ya da paketlemeden sonra obfuscate edin.