/** * Copyright (c) 2012-2016 André Bargull * Alle Rechte vorbehalten / All Rights Reserved. Use is subject to license terms. * * <https://github.com/anba/es6draft> */ package com.github.anba.es6draft.compiler; import java.lang.invoke.MethodHandle; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; import com.github.anba.es6draft.Script; import com.github.anba.es6draft.compiler.assembler.Type; import com.github.anba.es6draft.runtime.*; import com.github.anba.es6draft.runtime.internal.*; import com.github.anba.es6draft.runtime.modules.ModuleExport; import com.github.anba.es6draft.runtime.modules.ModuleRecord; import com.github.anba.es6draft.runtime.modules.ModuleSemantics; import com.github.anba.es6draft.runtime.modules.SourceTextModuleRecord; import com.github.anba.es6draft.runtime.objects.Eval; import com.github.anba.es6draft.runtime.objects.async.AsyncAbstractOperations; import com.github.anba.es6draft.runtime.objects.async.iteration.AsyncGeneratorObject; import com.github.anba.es6draft.runtime.objects.iteration.GeneratorObject; import com.github.anba.es6draft.runtime.objects.promise.PromiseAbstractOperations; import com.github.anba.es6draft.runtime.objects.promise.PromiseObject; import com.github.anba.es6draft.runtime.objects.simd.SIMDType; import com.github.anba.es6draft.runtime.objects.text.RegExpConstructor; import com.github.anba.es6draft.runtime.objects.text.RegExpObject; import com.github.anba.es6draft.runtime.types.Callable; import com.github.anba.es6draft.runtime.types.Constructor; import com.github.anba.es6draft.runtime.types.Intrinsics; import com.github.anba.es6draft.runtime.types.Null; import com.github.anba.es6draft.runtime.types.Reference; import com.github.anba.es6draft.runtime.types.ScriptObject; import com.github.anba.es6draft.runtime.types.Symbol; import com.github.anba.es6draft.runtime.types.Undefined; import com.github.anba.es6draft.runtime.types.builtins.*; /** * */ final class Types { private Types() { } // Primitive static final Type int_ = Type.of(int[].class); // java.lang static final Type Boolean = Type.of(Boolean.class); static final Type Byte = Type.of(Byte.class); static final Type Character = Type.of(Character.class); static final Type CharSequence = Type.of(CharSequence.class); static final Type Class = Type.of(Class.class); static final Type Double = Type.of(Double.class); static final Type Error = Type.of(Error.class); static final Type Float = Type.of(Float.class); static final Type IllegalStateException = Type.of(IllegalStateException.class); static final Type Integer = Type.of(Integer.class); static final Type Long = Type.of(Long.class); static final Type Math = Type.of(Math.class); static final Type Number = Type.of(Number.class); static final Type Object = Type.of(Object.class); static final Type Object_ = Type.of(Object[].class); static final Type Short = Type.of(Short.class); static final Type StackOverflowError = Type.of(StackOverflowError.class); static final Type String = Type.of(String.class); static final Type String_ = Type.of(String[].class); static final Type StringBuilder = Type.of(StringBuilder.class); static final Type Throwable = Type.of(Throwable.class); static final Type Void = Type.of(Void.class); // java.lang.invoke static final Type MethodHandle = Type.of(MethodHandle.class); // java.util static final Type ArrayList = Type.of(ArrayList.class); static final Type Arrays = Type.of(Arrays.class); static final Type Collections = Type.of(Collections.class); static final Type HashSet = Type.of(HashSet.class); static final Type Iterator = Type.of(Iterator.class); static final Type List = Type.of(List.class); static final Type Map = Type.of(Map.class); static final Type Set = Type.of(Set.class); // toplevel static final Type Script = Type.of(Script.class); // compiler static final Type CompiledFunction = Type.of(CompiledFunction.class); static final Type CompiledModule = Type.of(CompiledModule.class); static final Type CompiledScript = Type.of(CompiledScript.class); // runtime static final Type AbstractOperations = Type.of(AbstractOperations.class); static final Type DeclarativeEnvironmentRecord = Type.of(DeclarativeEnvironmentRecord.class); static final Type DeclarativeEnvironmentRecord$Binding = Type .of(DeclarativeEnvironmentRecord.Binding.class); static final Type EnvironmentRecord = Type.of(EnvironmentRecord.class); static final Type ExecutionContext = Type.of(ExecutionContext.class); static final Type FunctionEnvironmentRecord = Type.of(FunctionEnvironmentRecord.class); static final Type GlobalEnvironmentRecord = Type.of(GlobalEnvironmentRecord.class); static final Type LexicalEnvironment = Type.of(LexicalEnvironment.class); static final Type ModuleEnvironmentRecord = Type.of(ModuleEnvironmentRecord.class); static final Type ObjectEnvironmentRecord = Type.of(ObjectEnvironmentRecord.class); static final Type Realm = Type.of(Realm.class); static final Type ScriptRuntime = Type.of(ScriptRuntime.class); // runtime.modules static final Type ModuleExport = Type.of(ModuleExport.class); static final Type ModuleRecord = Type.of(ModuleRecord.class); static final Type ModuleSemantics = Type.of(ModuleSemantics.class); static final Type SourceTextModuleRecord = Type.of(SourceTextModuleRecord.class); // runtime.objects static final Type Eval = Type.of(Eval.class); static final Type PromiseObject = Type.of(PromiseObject.class); static final Type RegExpConstructor = Type.of(RegExpConstructor.class); static final Type RegExpObject = Type.of(RegExpObject.class); // runtime.objects.async static final Type AsyncAbstractOperations = Type.of(AsyncAbstractOperations.class); // runtime.objects.async.iteration static final Type AsyncGeneratorObject = Type.of(AsyncGeneratorObject.class); // runtime.objects.iteration static final Type GeneratorObject = Type.of(GeneratorObject.class); // runtime.objects.promise static final Type PromiseAbstractOperations = Type.of(PromiseAbstractOperations.class); // runtime.objects.simd static final Type SIMDType = Type.of(SIMDType.class); // runtime.types static final Type Callable = Type.of(Callable.class); static final Type Constructor = Type.of(Constructor.class); static final Type Intrinsics = Type.of(Intrinsics.class); static final Type Null = Type.of(Null.class); static final Type Reference = Type.of(Reference.class); static final Type ScriptObject = Type.of(ScriptObject.class); static final Type ScriptObject_ = Type.of(ScriptObject[].class); static final Type Symbol = Type.of(Symbol.class); static final Type _Type = Type.of(com.github.anba.es6draft.runtime.types.Type.class); static final Type Undefined = Type.of(Undefined.class); // runtime.types.builtins static final Type ArgumentsObject = Type.of(ArgumentsObject.class); static final Type ArrayObject = Type.of(ArrayObject.class); static final Type FunctionObject = Type.of(FunctionObject.class); static final Type FunctionObject$ConstructorKind = Type.of(FunctionObject.ConstructorKind.class); static final Type LegacyConstructorFunction = Type.of(LegacyConstructorFunction.class); static final Type LegacyConstructorFunction$Arguments = Type.of(LegacyConstructorFunction.Arguments.class); static final Type ModuleNamespaceObject = Type.of(ModuleNamespaceObject.class); static final Type OrdinaryAsyncFunction = Type.of(OrdinaryAsyncFunction.class); static final Type OrdinaryAsyncGenerator = Type.of(OrdinaryAsyncGenerator.class); static final Type OrdinaryConstructorFunction = Type.of(OrdinaryConstructorFunction.class); static final Type OrdinaryFunction = Type.of(OrdinaryFunction.class); static final Type OrdinaryConstructorGenerator = Type.of(OrdinaryConstructorGenerator.class); static final Type OrdinaryGenerator = Type.of(OrdinaryGenerator.class); static final Type OrdinaryObject = Type.of(OrdinaryObject.class); // runtime.internal static final Type DebugInfo = Type.of(DebugInfo.class); static final Type Errors = Type.of(Errors.class); static final Type Messages$Key = Type.of(Messages.Key.class); static final Type ResumptionPoint = Type.of(ResumptionPoint.class); static final Type ResumptionPoint_ = Type.of(ResumptionPoint[].class); static final Type ReturnValue = Type.of(ReturnValue.class); static final Type RuntimeInfo = Type.of(RuntimeInfo.class); static final Type RuntimeInfo$Function = Type.of(RuntimeInfo.Function.class); static final Type RuntimeInfo$ModuleBody = Type.of(RuntimeInfo.ModuleBody.class); static final Type RuntimeInfo$ScriptBody = Type.of(RuntimeInfo.ScriptBody.class); static final Type ScriptException = Type.of(ScriptException.class); static final Type ScriptIterator = Type.of(ScriptIterator.class); static final Type TailCallInvocation = Type.of(TailCallInvocation.class); }