Javascript: что значит /* @@*/означает?

Может кто-нибудь объяснить, как работает начало и конец html5shim script?

script начинается с /*@ и заканчивается на @*/ следующим образом:

/*@cc_on(function(a,b){function ........ (this,document);@*/

Что делает /*@ @*/?

Я бы ожидал, что последовательность /* */будет комментировать все строки между ними, но поскольку выполняется script, это не так? Я в замешательстве.

найдено по адресу:

http://html5shim.googlecode.com/svn/trunk/html5.js

Ответ 1

IE JScript поддерживает "условную компиляцию", трюк скрыть специальную информацию, специфичную для браузера, в комментариях. Идея состоит в том, что /*@[email protected]*/ - такая необычная последовательность символов, что ее можно переустановить, чтобы представить эту новую функцию уровня синтаксиса.

html5shiv использует его для создания фрагмента кода, который даже не будет запускаться в большинстве браузеров (что, как и вы, интерпретирует все как замечание), но имеет особое значение для IE.

MS doc здесь. Никакой другой JS-движок не поддерживает это. Как правило, вы можете использовать более явный код поведения, но если вам действительно нужно обнаружить функцию IE, которая не подвергает себя обнюхиванию в противном случае, это может быть удобно.