JavaScript का स्वचालित सेमीकोलन इंसर्शन (ASI) एक ऐसी प्रक्रिया है जो कोड में अनुपस्थित सेमीकोलन को स्वचालित रूप से जोड़ देती है। निम्नलिखित कथन ASI से प्रभावित होते हैं:
खाली कथन var कथन अभिव्यक्ति कथन do-while कथन continue कथन break कथन return कथन throw कथन
नियम निम्नलिखित विशिष्टता में दिए गए हैं:
- जब एक Script या Module को बाएं से दाएं पार्स किया जाता है: एक टोकन मिलता है जो व्याकरण के किसी भी उत्पादन द्वारा अनुमत नहीं है, तो एक सेमीकोलन स्वचालित रूप से उस आपत्तिजनक टोकन से पहले डाला जाता है, यदि निम्नलिखित में से एक या अधिक शर्तें सत्य हो जाती हैं:
- आपत्तिजनक टोकन } है।
- पिछला टोकन ) है और डाला गया सेमीकोलन do-while कथन के समापन सेमीकोलन के रूप में पार्स होगा (13.7.2)।
- टोकन के इनपुट स्ट्रीम का अंत मिलता है और इसलिए पार्सर इनपुट टोकन स्ट्रीम को एक पूर्ण ECMAScript या Module के रूप में पार्स करने में असमर्थ होता है, तो एक सेमीकोलन स्वचालित रूप से डाला जाता है।
- एक टोकन मिलता है जो व्याकरण के कुछ उत्पादन द्वारा अनुमत है, लेकिन उत्पादन एक प्रतिबंधित उत्पादन है और टोकन एनोटेशन के तुरंत बाद एक टर्मिनल या नॉन-टर्मिनल के लिए पहला टोकन होगा।