BytecodeFunctionGenerator::generateBytecodeFunction(
    Function::DefinitionKind definitionKind,
    ValueKind valueKind,
    bool strictMode,
    uint32_t paramCount,
    uint32_t environmentSize,
    uint32_t nameID) {
  return std::unique_ptr<BytecodeFunction>(new BytecodeFunction(
      std::move(opcodes_),
      definitionKind,
      valueKind,
      strictMode,
      FunctionHeader(
          bytecodeSize_,
          paramCount,
          frameSize_,
          environmentSize,
          nameID,
          highestReadCacheIndex_,
          highestWriteCacheIndex_),
      std::move(exceptionHandlers_),
      std::move(jumpTable_)));
}
BytecodeFunctionGenerator::generateBytecodeFunction(
    Function::DefinitionKind definitionKind,
    ValueKind valueKind,
    bool strictMode,
    uint32_t paramCount,
    uint32_t environmentSize,
    uint32_t nameID) {
  return std::unique_ptr<BytecodeFunction>(new BytecodeFunction(
      std::move(opcodes_),
      definitionKind,
      valueKind,
      strictMode,
      FunctionHeader(
          bytecodeSize_,
          paramCount,
          frameSize_,
          environmentSize,
          nameID,
          highestReadCacheIndex_,
          highestWriteCacheIndex_),
      std::move(exceptionHandlers_),
      std::move(jumpTable_)));
}