Current File : /home/tradevaly/www/node_modules/fontkit/src/cff/CFFPointer.js |
import r from 'restructure';
export default class CFFPointer extends r.Pointer {
constructor(type, options = {}) {
if (options.type == null) {
options.type = 'global';
}
super(null, type, options);
}
decode(stream, parent, operands) {
this.offsetType = {
decode: () => operands[0]
};
return super.decode(stream, parent, operands);
}
encode(stream, value, ctx) {
if (!stream) {
// compute the size (so ctx.pointerSize is correct)
this.offsetType = {
size: () => 0
};
this.size(value, ctx);
return [new Ptr(0)];
}
let ptr = null;
this.offsetType = {
encode: (stream, val) => ptr = val
};
super.encode(stream, value, ctx);
return [new Ptr(ptr)];
}
}
class Ptr {
constructor(val) {
this.val = val;
this.forceLarge = true;
}
valueOf() {
return this.val;
}
}