public static object Wrap()

in ClearScript/V8/V8ScriptItem.cs [27:81]


        public static object Wrap(V8ScriptEngine engine, object obj)
        {
            Debug.Assert(!(obj is IScriptMarshalWrapper));

            if (obj == null)
            {
                return null;
            }

            if (obj is IV8Object target)
            {
                if (target.IsArray)
                {
                    return new V8Array(engine, target);
                }

                if (!target.IsArrayBufferOrView)
                {
                    return new V8ScriptItem(engine, target);
                }

                switch (target.GetArrayBufferOrViewKind())
                {
                    case V8ArrayBufferOrViewKind.ArrayBuffer:
                        return new V8ArrayBuffer(engine, target);
                    case V8ArrayBufferOrViewKind.DataView:
                        return new V8DataView(engine, target);
                    case V8ArrayBufferOrViewKind.Uint8Array:
                    case V8ArrayBufferOrViewKind.Uint8ClampedArray:
                        return new V8TypedArray<byte>(engine, target);
                    case V8ArrayBufferOrViewKind.Int8Array:
                        return new V8TypedArray<sbyte>(engine, target);
                    case V8ArrayBufferOrViewKind.Uint16Array:
                        return new V8UInt16Array(engine, target);
                    case V8ArrayBufferOrViewKind.Int16Array:
                        return new V8TypedArray<short>(engine, target);
                    case V8ArrayBufferOrViewKind.Uint32Array:
                        return new V8TypedArray<uint>(engine, target);
                    case V8ArrayBufferOrViewKind.Int32Array:
                        return new V8TypedArray<int>(engine, target);
                    case V8ArrayBufferOrViewKind.BigUint64Array:
                        return new V8TypedArray<ulong>(engine, target);
                    case V8ArrayBufferOrViewKind.BigInt64Array:
                        return new V8TypedArray<long>(engine, target);
                    case V8ArrayBufferOrViewKind.Float32Array:
                        return new V8TypedArray<float>(engine, target);
                    case V8ArrayBufferOrViewKind.Float64Array:
                        return new V8TypedArray<double>(engine, target);
                    default:
                        return new V8ScriptItem(engine, target);
                }
            }

            return obj;
        }