क्लोजर कंपाइलर फ़ंक्शन को रेखांकित कर रहा है, लेकिन कोड का आकार छोटा है यदि उस फ़ंक्शन को रेखांकित नहीं किया गया है (मुझे केवल कोड आकार की परवाह है - यह JS1k के लिए है)। क्या मैं संकलक को बता सकता हूं कि मैं उस फ़ंक्शन को रेखांकित नहीं करना चाहता हूं?क्या Google क्लोजर कंपाइलर * नहीं * इनलाइन कुछ फ़ंक्शंस बनाना संभव है?
संपादित करें:
function lineTo(x,y) {
a.lineTo(x,y);
}
जहां कैनवास संदर्भ में a
: बस थोड़ा बेहतर व्याख्या करने के लिए, यहाँ मेरी सुविधा नहीं होती। चूंकि कोड में इतने सारे a.lineTo
एस हैं, इसलिए इस फ़ंक्शन का उपयोग करने के लायक है। इस तरह, मेरा कोड 101 9 बाइट्स है (और सभी lineTo
एस a.lineTo
द्वारा प्रतिस्थापित किए गए हैं)। अगर मैं करने के लिए समारोह को बदलने:
function lineTo(x,y) {
a.lineTo(x,y);
console.log();
}
नई लाइन किसी भी तरह संकलक बलों इस समारोह है, जो मुझे 993 बाइट्स देता अनुरूप नहीं है। तो अगर मैं console.log();
से छुटकारा पा सकता हूं तो मैं एक और 14 बाइट्स बचाऊंगा।
http://code.google.com/intl/hi/closure/compiler/docs/compilatio n_levels.html "कंपाइलर केवल कार्यों को रेखांकित करता है जब यह निर्धारित करता है कि इनलाइनिंग सुरक्षित है और अंतरिक्ष बचाती है।" ... हो सकता है कि दस्तावेज़ गलत है या शिकायतकर्ता में बग है। – timdream
@timdream मेरा संपादन देखें - ऐसा लगता है कि यह स्वचालित रूप से एक-लाइन फ़ंक्शन को रेखांकित कर देगा, भले ही इनलाइन करने से तुलना में आकार बढ़ाना। – Skilldrick
समझ गया! धन्यवाद। – timdream