Сообщение от Alikberov
|
Как видно, всюду - восклицательные знаки.
|
Не понял о чем это.
Сообщение от Alikberov
|
так как я плохо понимаю (оказывается) объектную модель JavaScript.
|
В js есть примитивные типы: number, string, boolean, undefined, null, symbol,
bigint
Все остальное - объекты.
Свойства и методы могут быть только у объектов.
Нельзя задать свойство примитивному типу
Ну нельзя так
let b = true;
b.prop = 42;
if (b.prop) {}
Вы пишите n.WITH = 16. Но n - bigint. Примитивный тип.
Сообщение от Alikberov
|
А ещё прроблема - необходимость копировать массив из-за безвременного действия опции SIGNED.
|
Только сделать опцию SIGNED временной. Обнулять после первого использования
Т.е. например так
RAX :function() {
var n = this[0]; n = (n & 0xFFFFFFFFFFFFFFFFn) |
(this.EXPAND_SIGN && (n & 0x8000000000000000n) ?
0xFFFFFFFFFFFFFFFF0000000000000000n : 0n);
/*n.WIDTH = 16; */
this.EXPAND_SIGN = false; //!!!
return n;
},