ポリフィルは、元の呼び出しをシムへの呼び出しに置き換えるシムです。
たとえば、navigator.mediaDevicesオブジェクトを使用したいが、すべてのブラウザがこれをサポートしているわけではないとします。次のように使用できるシムを提供するライブラリを想像できます。
<script src="js/MediaShim.js"></script>
<script>
MediaShim.mediaDevices.getUserMedia(...);
</script>
この場合、元のオブジェクトまたはメソッドを使用する代わりに、shimを明示的に呼び出しています。一方、ポリフィルは、元のオブジェクトのオブジェクトとメソッドを置き換えます。
例えば:
<script src="js/adapter.js"></script>
<script>
navigator.mediaDevices.getUserMedia(...);
</script>
コードでは、標準のnavigator.mediaDevicesオブジェクトを使用しているように見えます。しかし、実際には、ポリフィル(この例ではadapter.js)がこのオブジェクトを独自のオブジェクトで置き換えています。
交換したのはシムです。これにより、機能がネイティブでサポートされているかどうかが検出され、サポートされている場合は使用されます。サポートされていない場合は、他のAPIを使用して機能が回避されます。
つまり、ポリフィルは一種の「透明な」シムです。そして、これは「ポリフィルスクリプトを削除した場合、ポリフィルが削除されているにもかかわらず変更を必要とせずに、コードは引き続き機能します」と言ったときに、レミーシャープ(この用語を作り出した)が意味したことです。