This document discusses JavaScript code obfuscation. It begins by defining code obfuscation and distinguishing it from encryption. It notes that obfuscation transforms code to make it harder to understand or modify, while still remaining executable. The document then outlines various metrics for measuring obfuscation, including potency, resilience, stealthiness, execution cost, and maintainability. It provides examples to illustrate each metric. Finally, it discusses practical obfuscation of JavaScript code and challenges that techniques like static and dynamic code analysis pose to obfuscation. The overall document serves to provide concepts and metrics for understanding JavaScript code obfuscation.