О, я таки вкурил абстрактные ссылки из ES7.
Оператор "." работает слева-направо, т.е. мы вызываем метод/свойство от экземпляра, а новый оператор "::" работает справа-налево, т.е. это метод/свойство адаптируется пол наш экземпляр, т.е. по сути это сахар для паттерна заимствование:
Array.prototype.forEach.call(myObject, function () {
...
});
А теперь вуаля, покажу пример использования моего Collection с абстрактными ссылками:
import 'collection.js';
var a = [1, 2, 3]::map((el) => el ** 2)
var b = {a: 1, b: 2}::map((el) => el ** 2)
var c = new Map([[1, 2], [2, 3]])::map((el) => el ** 2)
Т.е. необходимость использовать конструктор $C отпадает, красота! И при этом мы не гадим в Object.prototype, т.е. такое расширение абсолютно безопасно.