Index: mojo/public/js/codec.js |
diff --git a/mojo/public/js/codec.js b/mojo/public/js/codec.js |
deleted file mode 100644 |
index 357e50718de2788fde45f0c8af90a2af044864f6..0000000000000000000000000000000000000000 |
--- a/mojo/public/js/codec.js |
+++ /dev/null |
@@ -1,829 +0,0 @@ |
-// Copyright 2014 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-define("mojo/public/js/codec", [ |
- "mojo/public/js/unicode", |
- "mojo/public/js/buffer", |
-], function(unicode, buffer) { |
- |
- var kErrorUnsigned = "Passing negative value to unsigned"; |
- var kErrorArray = "Passing non Array for array type"; |
- var kErrorString = "Passing non String for string type"; |
- var kErrorMap = "Passing non Map for map type"; |
- |
- // Memory ------------------------------------------------------------------- |
- |
- var kAlignment = 8; |
- |
- function align(size) { |
- return size + (kAlignment - (size % kAlignment)) % kAlignment; |
- } |
- |
- function isAligned(offset) { |
- return offset >= 0 && (offset % kAlignment) === 0; |
- } |
- |
- // Constants ---------------------------------------------------------------- |
- |
- var kArrayHeaderSize = 8; |
- var kStructHeaderSize = 8; |
- var kMessageHeaderSize = 16; |
- var kMessageWithRequestIDHeaderSize = 24; |
- var kMapStructPayloadSize = 16; |
- |
- var kStructHeaderNumBytesOffset = 0; |
- var kStructHeaderNumFieldsOffset = 4; |
- |
- var kEncodedInvalidHandleValue = 0xFFFFFFFF; |
- |
- // Decoder ------------------------------------------------------------------ |
- |
- function Decoder(buffer, handles, base) { |
- this.buffer = buffer; |
- this.handles = handles; |
- this.base = base; |
- this.next = base; |
- } |
- |
- Decoder.prototype.skip = function(offset) { |
- this.next += offset; |
- }; |
- |
- Decoder.prototype.readInt8 = function() { |
- var result = this.buffer.getInt8(this.next); |
- this.next += 1; |
- return result; |
- }; |
- |
- Decoder.prototype.readUint8 = function() { |
- var result = this.buffer.getUint8(this.next); |
- this.next += 1; |
- return result; |
- }; |
- |
- Decoder.prototype.readInt16 = function() { |
- var result = this.buffer.getInt16(this.next); |
- this.next += 2; |
- return result; |
- }; |
- |
- Decoder.prototype.readUint16 = function() { |
- var result = this.buffer.getUint16(this.next); |
- this.next += 2; |
- return result; |
- }; |
- |
- Decoder.prototype.readInt32 = function() { |
- var result = this.buffer.getInt32(this.next); |
- this.next += 4; |
- return result; |
- }; |
- |
- Decoder.prototype.readUint32 = function() { |
- var result = this.buffer.getUint32(this.next); |
- this.next += 4; |
- return result; |
- }; |
- |
- Decoder.prototype.readInt64 = function() { |
- var result = this.buffer.getInt64(this.next); |
- this.next += 8; |
- return result; |
- }; |
- |
- Decoder.prototype.readUint64 = function() { |
- var result = this.buffer.getUint64(this.next); |
- this.next += 8; |
- return result; |
- }; |
- |
- Decoder.prototype.readFloat = function() { |
- var result = this.buffer.getFloat32(this.next); |
- this.next += 4; |
- return result; |
- }; |
- |
- Decoder.prototype.readDouble = function() { |
- var result = this.buffer.getFloat64(this.next); |
- this.next += 8; |
- return result; |
- }; |
- |
- Decoder.prototype.decodePointer = function() { |
- // TODO(abarth): To correctly decode a pointer, we need to know the real |
- // base address of the array buffer. |
- var offsetPointer = this.next; |
- var offset = this.readUint64(); |
- if (!offset) |
- return 0; |
- return offsetPointer + offset; |
- }; |
- |
- Decoder.prototype.decodeAndCreateDecoder = function(pointer) { |
- return new Decoder(this.buffer, this.handles, pointer); |
- }; |
- |
- Decoder.prototype.decodeHandle = function() { |
- return this.handles[this.readUint32()] || null; |
- }; |
- |
- Decoder.prototype.decodeString = function() { |
- var numberOfBytes = this.readUint32(); |
- var numberOfElements = this.readUint32(); |
- var base = this.next; |
- this.next += numberOfElements; |
- return unicode.decodeUtf8String( |
- new Uint8Array(this.buffer.arrayBuffer, base, numberOfElements)); |
- }; |
- |
- Decoder.prototype.decodeArray = function(cls) { |
- var numberOfBytes = this.readUint32(); |
- var numberOfElements = this.readUint32(); |
- var val = new Array(numberOfElements); |
- if (cls === PackedBool) { |
- var byte; |
- for (var i = 0; i < numberOfElements; ++i) { |
- if (i % 8 === 0) |
- byte = this.readUint8(); |
- val[i] = (byte & (1 << i % 8)) ? true : false; |
- } |
- } else { |
- for (var i = 0; i < numberOfElements; ++i) { |
- val[i] = cls.decode(this); |
- } |
- } |
- return val; |
- }; |
- |
- Decoder.prototype.decodeStruct = function(cls) { |
- return cls.decode(this); |
- }; |
- |
- Decoder.prototype.decodeStructPointer = function(cls) { |
- var pointer = this.decodePointer(); |
- if (!pointer) { |
- return null; |
- } |
- return cls.decode(this.decodeAndCreateDecoder(pointer)); |
- }; |
- |
- Decoder.prototype.decodeArrayPointer = function(cls) { |
- var pointer = this.decodePointer(); |
- if (!pointer) { |
- return null; |
- } |
- return this.decodeAndCreateDecoder(pointer).decodeArray(cls); |
- }; |
- |
- Decoder.prototype.decodeStringPointer = function() { |
- var pointer = this.decodePointer(); |
- if (!pointer) { |
- return null; |
- } |
- return this.decodeAndCreateDecoder(pointer).decodeString(); |
- }; |
- |
- Decoder.prototype.decodeMap = function(keyClass, valueClass) { |
- this.skip(4); // numberOfBytes |
- this.skip(4); // numberOfFields |
- var keys = this.decodeArrayPointer(keyClass); |
- var values = this.decodeArrayPointer(valueClass); |
- var val = new Map(); |
- for (var i = 0; i < keys.length; i++) |
- val.set(keys[i], values[i]); |
- return val; |
- }; |
- |
- Decoder.prototype.decodeMapPointer = function(keyClass, valueClass) { |
- var pointer = this.decodePointer(); |
- if (!pointer) { |
- return null; |
- } |
- var decoder = this.decodeAndCreateDecoder(pointer); |
- return decoder.decodeMap(keyClass, valueClass); |
- }; |
- |
- // Encoder ------------------------------------------------------------------ |
- |
- function Encoder(buffer, handles, base) { |
- this.buffer = buffer; |
- this.handles = handles; |
- this.base = base; |
- this.next = base; |
- } |
- |
- Encoder.prototype.skip = function(offset) { |
- this.next += offset; |
- }; |
- |
- Encoder.prototype.writeInt8 = function(val) { |
- this.buffer.setInt8(this.next, val); |
- this.next += 1; |
- }; |
- |
- Encoder.prototype.writeUint8 = function(val) { |
- if (val < 0) { |
- throw new Error(kErrorUnsigned); |
- } |
- this.buffer.setUint8(this.next, val); |
- this.next += 1; |
- }; |
- |
- Encoder.prototype.writeInt16 = function(val) { |
- this.buffer.setInt16(this.next, val); |
- this.next += 2; |
- }; |
- |
- Encoder.prototype.writeUint16 = function(val) { |
- if (val < 0) { |
- throw new Error(kErrorUnsigned); |
- } |
- this.buffer.setUint16(this.next, val); |
- this.next += 2; |
- }; |
- |
- Encoder.prototype.writeInt32 = function(val) { |
- this.buffer.setInt32(this.next, val); |
- this.next += 4; |
- }; |
- |
- Encoder.prototype.writeUint32 = function(val) { |
- if (val < 0) { |
- throw new Error(kErrorUnsigned); |
- } |
- this.buffer.setUint32(this.next, val); |
- this.next += 4; |
- }; |
- |
- Encoder.prototype.writeInt64 = function(val) { |
- this.buffer.setInt64(this.next, val); |
- this.next += 8; |
- }; |
- |
- Encoder.prototype.writeUint64 = function(val) { |
- if (val < 0) { |
- throw new Error(kErrorUnsigned); |
- } |
- this.buffer.setUint64(this.next, val); |
- this.next += 8; |
- }; |
- |
- Encoder.prototype.writeFloat = function(val) { |
- this.buffer.setFloat32(this.next, val); |
- this.next += 4; |
- }; |
- |
- Encoder.prototype.writeDouble = function(val) { |
- this.buffer.setFloat64(this.next, val); |
- this.next += 8; |
- }; |
- |
- Encoder.prototype.encodePointer = function(pointer) { |
- if (!pointer) |
- return this.writeUint64(0); |
- // TODO(abarth): To correctly encode a pointer, we need to know the real |
- // base address of the array buffer. |
- var offset = pointer - this.next; |
- this.writeUint64(offset); |
- }; |
- |
- Encoder.prototype.createAndEncodeEncoder = function(size) { |
- var pointer = this.buffer.alloc(align(size)); |
- this.encodePointer(pointer); |
- return new Encoder(this.buffer, this.handles, pointer); |
- }; |
- |
- Encoder.prototype.encodeHandle = function(handle) { |
- this.handles.push(handle); |
- this.writeUint32(this.handles.length - 1); |
- }; |
- |
- Encoder.prototype.encodeString = function(val) { |
- var base = this.next + kArrayHeaderSize; |
- var numberOfElements = unicode.encodeUtf8String( |
- val, new Uint8Array(this.buffer.arrayBuffer, base)); |
- var numberOfBytes = kArrayHeaderSize + numberOfElements; |
- this.writeUint32(numberOfBytes); |
- this.writeUint32(numberOfElements); |
- this.next += numberOfElements; |
- }; |
- |
- Encoder.prototype.encodeArray = |
- function(cls, val, numberOfElements, encodedSize) { |
- if (numberOfElements === undefined) |
- numberOfElements = val.length; |
- if (encodedSize === undefined) |
- encodedSize = kArrayHeaderSize + cls.encodedSize * numberOfElements; |
- |
- this.writeUint32(encodedSize); |
- this.writeUint32(numberOfElements); |
- |
- if (cls === PackedBool) { |
- var byte = 0; |
- for (i = 0; i < numberOfElements; ++i) { |
- if (val[i]) |
- byte |= (1 << i % 8); |
- if (i % 8 === 7 || i == numberOfElements - 1) { |
- Uint8.encode(this, byte); |
- byte = 0; |
- } |
- } |
- } else { |
- for (var i = 0; i < numberOfElements; ++i) |
- cls.encode(this, val[i]); |
- } |
- }; |
- |
- Encoder.prototype.encodeStruct = function(cls, val) { |
- return cls.encode(this, val); |
- }; |
- |
- Encoder.prototype.encodeStructPointer = function(cls, val) { |
- if (val == null) { |
- // Also handles undefined, since undefined == null. |
- this.encodePointer(val); |
- return; |
- } |
- var encoder = this.createAndEncodeEncoder(cls.encodedSize); |
- cls.encode(encoder, val); |
- }; |
- |
- Encoder.prototype.encodeArrayPointer = function(cls, val) { |
- if (val == null) { |
- // Also handles undefined, since undefined == null. |
- this.encodePointer(val); |
- return; |
- } |
- |
- var numberOfElements = val.length; |
- if (!Number.isSafeInteger(numberOfElements) || numberOfElements < 0) |
- throw new Error(kErrorArray); |
- |
- var encodedSize = kArrayHeaderSize + ((cls === PackedBool) ? |
- Math.ceil(numberOfElements / 8) : cls.encodedSize * numberOfElements); |
- var encoder = this.createAndEncodeEncoder(encodedSize); |
- encoder.encodeArray(cls, val, numberOfElements, encodedSize); |
- }; |
- |
- Encoder.prototype.encodeStringPointer = function(val) { |
- if (val == null) { |
- // Also handles undefined, since undefined == null. |
- this.encodePointer(val); |
- return; |
- } |
- // Only accepts string primivites, not String Objects like new String("foo") |
- if (typeof(val) !== "string") { |
- throw new Error(kErrorString); |
- } |
- var encodedSize = kArrayHeaderSize + unicode.utf8Length(val); |
- var encoder = this.createAndEncodeEncoder(encodedSize); |
- encoder.encodeString(val); |
- }; |
- |
- Encoder.prototype.encodeMap = function(keyClass, valueClass, val) { |
- var keys = new Array(val.size); |
- var values = new Array(val.size); |
- var i = 0; |
- val.forEach(function(value, key) { |
- values[i] = value; |
- keys[i++] = key; |
- }); |
- this.writeUint32(kStructHeaderSize + kMapStructPayloadSize); |
- this.writeUint32(2); // two fields: keys, values |
- this.encodeArrayPointer(keyClass, keys); |
- this.encodeArrayPointer(valueClass, values); |
- } |
- |
- Encoder.prototype.encodeMapPointer = function(keyClass, valueClass, val) { |
- if (val == null) { |
- // Also handles undefined, since undefined == null. |
- this.encodePointer(val); |
- return; |
- } |
- if (!(val instanceof Map)) { |
- throw new Error(kErrorMap); |
- } |
- var encodedSize = kStructHeaderSize + kMapStructPayloadSize; |
- var encoder = this.createAndEncodeEncoder(encodedSize); |
- encoder.encodeMap(keyClass, valueClass, val); |
- }; |
- |
- // Message ------------------------------------------------------------------ |
- |
- var kMessageNameOffset = kStructHeaderSize; |
- var kMessageFlagsOffset = kMessageNameOffset + 4; |
- var kMessageRequestIDOffset = kMessageFlagsOffset + 4; |
- |
- var kMessageExpectsResponse = 1 << 0; |
- var kMessageIsResponse = 1 << 1; |
- |
- function Message(buffer, handles) { |
- this.buffer = buffer; |
- this.handles = handles; |
- } |
- |
- Message.prototype.getHeaderNumBytes = function() { |
- return this.buffer.getUint32(kStructHeaderNumBytesOffset); |
- }; |
- |
- Message.prototype.getHeaderNumFields = function() { |
- return this.buffer.getUint32(kStructHeaderNumFieldsOffset); |
- }; |
- |
- Message.prototype.getName = function() { |
- return this.buffer.getUint32(kMessageNameOffset); |
- }; |
- |
- Message.prototype.getFlags = function() { |
- return this.buffer.getUint32(kMessageFlagsOffset); |
- }; |
- |
- Message.prototype.isResponse = function() { |
- return (this.getFlags() & kMessageIsResponse) != 0; |
- }; |
- |
- Message.prototype.expectsResponse = function() { |
- return (this.getFlags() & kMessageExpectsResponse) != 0; |
- }; |
- |
- Message.prototype.setRequestID = function(requestID) { |
- // TODO(darin): Verify that space was reserved for this field! |
- this.buffer.setUint64(kMessageRequestIDOffset, requestID); |
- }; |
- |
- |
- // MessageBuilder ----------------------------------------------------------- |
- |
- function MessageBuilder(messageName, payloadSize) { |
- // Currently, we don't compute the payload size correctly ahead of time. |
- // Instead, we resize the buffer at the end. |
- var numberOfBytes = kMessageHeaderSize + payloadSize; |
- this.buffer = new buffer.Buffer(numberOfBytes); |
- this.handles = []; |
- var encoder = this.createEncoder(kMessageHeaderSize); |
- encoder.writeUint32(kMessageHeaderSize); |
- encoder.writeUint32(2); // num_fields. |
- encoder.writeUint32(messageName); |
- encoder.writeUint32(0); // flags. |
- } |
- |
- MessageBuilder.prototype.createEncoder = function(size) { |
- var pointer = this.buffer.alloc(size); |
- return new Encoder(this.buffer, this.handles, pointer); |
- }; |
- |
- MessageBuilder.prototype.encodeStruct = function(cls, val) { |
- cls.encode(this.createEncoder(cls.encodedSize), val); |
- }; |
- |
- MessageBuilder.prototype.finish = function() { |
- // TODO(abarth): Rather than resizing the buffer at the end, we could |
- // compute the size we need ahead of time, like we do in C++. |
- this.buffer.trim(); |
- var message = new Message(this.buffer, this.handles); |
- this.buffer = null; |
- this.handles = null; |
- this.encoder = null; |
- return message; |
- }; |
- |
- // MessageWithRequestIDBuilder ----------------------------------------------- |
- |
- function MessageWithRequestIDBuilder(messageName, payloadSize, flags, |
- requestID) { |
- // Currently, we don't compute the payload size correctly ahead of time. |
- // Instead, we resize the buffer at the end. |
- var numberOfBytes = kMessageWithRequestIDHeaderSize + payloadSize; |
- this.buffer = new buffer.Buffer(numberOfBytes); |
- this.handles = []; |
- var encoder = this.createEncoder(kMessageWithRequestIDHeaderSize); |
- encoder.writeUint32(kMessageWithRequestIDHeaderSize); |
- encoder.writeUint32(3); // num_fields. |
- encoder.writeUint32(messageName); |
- encoder.writeUint32(flags); |
- encoder.writeUint64(requestID); |
- } |
- |
- MessageWithRequestIDBuilder.prototype = |
- Object.create(MessageBuilder.prototype); |
- |
- MessageWithRequestIDBuilder.prototype.constructor = |
- MessageWithRequestIDBuilder; |
- |
- // MessageReader ------------------------------------------------------------ |
- |
- function MessageReader(message) { |
- this.decoder = new Decoder(message.buffer, message.handles, 0); |
- var messageHeaderSize = this.decoder.readUint32(); |
- this.payloadSize = message.buffer.byteLength - messageHeaderSize; |
- var numFields = this.decoder.readUint32(); |
- this.messageName = this.decoder.readUint32(); |
- this.flags = this.decoder.readUint32(); |
- if (numFields >= 3) |
- this.requestID = this.decoder.readUint64(); |
- this.decoder.skip(messageHeaderSize - this.decoder.next); |
- } |
- |
- MessageReader.prototype.decodeStruct = function(cls) { |
- return cls.decode(this.decoder); |
- }; |
- |
- // Built-in types ----------------------------------------------------------- |
- |
- // This type is only used with ArrayOf(PackedBool). |
- function PackedBool() { |
- } |
- |
- function Int8() { |
- } |
- |
- Int8.encodedSize = 1; |
- |
- Int8.decode = function(decoder) { |
- return decoder.readInt8(); |
- }; |
- |
- Int8.encode = function(encoder, val) { |
- encoder.writeInt8(val); |
- }; |
- |
- Uint8.encode = function(encoder, val) { |
- encoder.writeUint8(val); |
- }; |
- |
- function Uint8() { |
- } |
- |
- Uint8.encodedSize = 1; |
- |
- Uint8.decode = function(decoder) { |
- return decoder.readUint8(); |
- }; |
- |
- Uint8.encode = function(encoder, val) { |
- encoder.writeUint8(val); |
- }; |
- |
- function Int16() { |
- } |
- |
- Int16.encodedSize = 2; |
- |
- Int16.decode = function(decoder) { |
- return decoder.readInt16(); |
- }; |
- |
- Int16.encode = function(encoder, val) { |
- encoder.writeInt16(val); |
- }; |
- |
- function Uint16() { |
- } |
- |
- Uint16.encodedSize = 2; |
- |
- Uint16.decode = function(decoder) { |
- return decoder.readUint16(); |
- }; |
- |
- Uint16.encode = function(encoder, val) { |
- encoder.writeUint16(val); |
- }; |
- |
- function Int32() { |
- } |
- |
- Int32.encodedSize = 4; |
- |
- Int32.decode = function(decoder) { |
- return decoder.readInt32(); |
- }; |
- |
- Int32.encode = function(encoder, val) { |
- encoder.writeInt32(val); |
- }; |
- |
- function Uint32() { |
- } |
- |
- Uint32.encodedSize = 4; |
- |
- Uint32.decode = function(decoder) { |
- return decoder.readUint32(); |
- }; |
- |
- Uint32.encode = function(encoder, val) { |
- encoder.writeUint32(val); |
- }; |
- |
- function Int64() { |
- } |
- |
- Int64.encodedSize = 8; |
- |
- Int64.decode = function(decoder) { |
- return decoder.readInt64(); |
- }; |
- |
- Int64.encode = function(encoder, val) { |
- encoder.writeInt64(val); |
- }; |
- |
- function Uint64() { |
- } |
- |
- Uint64.encodedSize = 8; |
- |
- Uint64.decode = function(decoder) { |
- return decoder.readUint64(); |
- }; |
- |
- Uint64.encode = function(encoder, val) { |
- encoder.writeUint64(val); |
- }; |
- |
- function String() { |
- }; |
- |
- String.encodedSize = 8; |
- |
- String.decode = function(decoder) { |
- return decoder.decodeStringPointer(); |
- }; |
- |
- String.encode = function(encoder, val) { |
- encoder.encodeStringPointer(val); |
- }; |
- |
- function NullableString() { |
- } |
- |
- NullableString.encodedSize = String.encodedSize; |
- |
- NullableString.decode = String.decode; |
- |
- NullableString.encode = String.encode; |
- |
- function Float() { |
- } |
- |
- Float.encodedSize = 4; |
- |
- Float.decode = function(decoder) { |
- return decoder.readFloat(); |
- }; |
- |
- Float.encode = function(encoder, val) { |
- encoder.writeFloat(val); |
- }; |
- |
- function Double() { |
- } |
- |
- Double.encodedSize = 8; |
- |
- Double.decode = function(decoder) { |
- return decoder.readDouble(); |
- }; |
- |
- Double.encode = function(encoder, val) { |
- encoder.writeDouble(val); |
- }; |
- |
- function PointerTo(cls) { |
- this.cls = cls; |
- } |
- |
- PointerTo.prototype.encodedSize = 8; |
- |
- PointerTo.prototype.decode = function(decoder) { |
- var pointer = decoder.decodePointer(); |
- if (!pointer) { |
- return null; |
- } |
- return this.cls.decode(decoder.decodeAndCreateDecoder(pointer)); |
- }; |
- |
- PointerTo.prototype.encode = function(encoder, val) { |
- if (!val) { |
- encoder.encodePointer(val); |
- return; |
- } |
- var objectEncoder = encoder.createAndEncodeEncoder(this.cls.encodedSize); |
- this.cls.encode(objectEncoder, val); |
- }; |
- |
- function NullablePointerTo(cls) { |
- PointerTo.call(this, cls); |
- } |
- |
- NullablePointerTo.prototype = Object.create(PointerTo.prototype); |
- |
- function ArrayOf(cls, length) { |
- this.cls = cls; |
- this.length = length || 0; |
- } |
- |
- ArrayOf.prototype.encodedSize = 8; |
- |
- ArrayOf.prototype.dimensions = function() { |
- return [this.length].concat( |
- (this.cls instanceof ArrayOf) ? this.cls.dimensions() : []); |
- } |
- |
- ArrayOf.prototype.decode = function(decoder) { |
- return decoder.decodeArrayPointer(this.cls); |
- }; |
- |
- ArrayOf.prototype.encode = function(encoder, val) { |
- encoder.encodeArrayPointer(this.cls, val); |
- }; |
- |
- function NullableArrayOf(cls) { |
- ArrayOf.call(this, cls); |
- } |
- |
- NullableArrayOf.prototype = Object.create(ArrayOf.prototype); |
- |
- function Handle() { |
- } |
- |
- Handle.encodedSize = 4; |
- |
- Handle.decode = function(decoder) { |
- return decoder.decodeHandle(); |
- }; |
- |
- Handle.encode = function(encoder, val) { |
- encoder.encodeHandle(val); |
- }; |
- |
- function NullableHandle() { |
- } |
- |
- NullableHandle.encodedSize = Handle.encodedSize; |
- |
- NullableHandle.decode = Handle.decode; |
- |
- NullableHandle.encode = Handle.encode; |
- |
- function MapOf(keyClass, valueClass) { |
- this.keyClass = keyClass; |
- this.valueClass = valueClass; |
- } |
- |
- MapOf.prototype.encodedSize = 8; |
- |
- MapOf.prototype.decode = function(decoder) { |
- return decoder.decodeMapPointer(this.keyClass, this.valueClass); |
- }; |
- |
- MapOf.prototype.encode = function(encoder, val) { |
- encoder.encodeMapPointer(this.keyClass, this.valueClass, val); |
- }; |
- |
- function NullableMapOf(keyClass, valueClass) { |
- MapOf.call(this, keyClass, valueClass); |
- } |
- |
- NullableMapOf.prototype = Object.create(MapOf.prototype); |
- |
- var exports = {}; |
- exports.align = align; |
- exports.isAligned = isAligned; |
- exports.Message = Message; |
- exports.MessageBuilder = MessageBuilder; |
- exports.MessageWithRequestIDBuilder = MessageWithRequestIDBuilder; |
- exports.MessageReader = MessageReader; |
- exports.kArrayHeaderSize = kArrayHeaderSize; |
- exports.kMapStructPayloadSize = kMapStructPayloadSize; |
- exports.kStructHeaderSize = kStructHeaderSize; |
- exports.kEncodedInvalidHandleValue = kEncodedInvalidHandleValue; |
- exports.kMessageHeaderSize = kMessageHeaderSize; |
- exports.kMessageWithRequestIDHeaderSize = kMessageWithRequestIDHeaderSize; |
- exports.kMessageExpectsResponse = kMessageExpectsResponse; |
- exports.kMessageIsResponse = kMessageIsResponse; |
- exports.Int8 = Int8; |
- exports.Uint8 = Uint8; |
- exports.Int16 = Int16; |
- exports.Uint16 = Uint16; |
- exports.Int32 = Int32; |
- exports.Uint32 = Uint32; |
- exports.Int64 = Int64; |
- exports.Uint64 = Uint64; |
- exports.Float = Float; |
- exports.Double = Double; |
- exports.String = String; |
- exports.NullableString = NullableString; |
- exports.PointerTo = PointerTo; |
- exports.NullablePointerTo = NullablePointerTo; |
- exports.ArrayOf = ArrayOf; |
- exports.NullableArrayOf = NullableArrayOf; |
- exports.PackedBool = PackedBool; |
- exports.Handle = Handle; |
- exports.NullableHandle = NullableHandle; |
- exports.MapOf = MapOf; |
- exports.NullableMapOf = NullableMapOf; |
- return exports; |
-}); |