1486536df718553960f9700559e80e5b10b0d5994dslomov@chromium.org// Copyright 2014 the V8 project authors. All rights reserved.
23484964a86451e86dcf04be9bd8c0d76ee04f081rossberg@chromium.org// Use of this source code is governed by a BSD-style license that can be
33484964a86451e86dcf04be9bd8c0d76ee04f081rossberg@chromium.org// found in the LICENSE file.
4486536df718553960f9700559e80e5b10b0d5994dslomov@chromium.org
5486536df718553960f9700559e80e5b10b0d5994dslomov@chromium.org#ifndef V8_PROPERTY_DETAILS_INL_H_
6486536df718553960f9700559e80e5b10b0d5994dslomov@chromium.org#define V8_PROPERTY_DETAILS_INL_H_
7486536df718553960f9700559e80e5b10b0d5994dslomov@chromium.org
8196eb601290dc49c3754da728dc58700dff2de1bmachenbach@chromium.org#include "src/conversions.h"
9196eb601290dc49c3754da728dc58700dff2de1bmachenbach@chromium.org#include "src/objects.h"
10196eb601290dc49c3754da728dc58700dff2de1bmachenbach@chromium.org#include "src/property-details.h"
11196eb601290dc49c3754da728dc58700dff2de1bmachenbach@chromium.org#include "src/types.h"
12486536df718553960f9700559e80e5b10b0d5994dslomov@chromium.org
13486536df718553960f9700559e80e5b10b0d5994dslomov@chromium.orgnamespace v8 {
14486536df718553960f9700559e80e5b10b0d5994dslomov@chromium.orgnamespace internal {
15486536df718553960f9700559e80e5b10b0d5994dslomov@chromium.org
16d06b9264b1c886fc80a100e9915cf8ae07fdb4e5machenbach@chromium.orgRepresentation Representation::FromType(Type* type) {
17d06b9264b1c886fc80a100e9915cf8ae07fdb4e5machenbach@chromium.org  DisallowHeapAllocation no_allocation;
18d06b9264b1c886fc80a100e9915cf8ae07fdb4e5machenbach@chromium.org  if (type->Is(Type::None())) return Representation::None();
19d06b9264b1c886fc80a100e9915cf8ae07fdb4e5machenbach@chromium.org  if (type->Is(Type::SignedSmall())) return Representation::Smi();
20d06b9264b1c886fc80a100e9915cf8ae07fdb4e5machenbach@chromium.org  if (type->Is(Type::Signed32())) return Representation::Integer32();
21d06b9264b1c886fc80a100e9915cf8ae07fdb4e5machenbach@chromium.org  if (type->Is(Type::Number())) return Representation::Double();
22d06b9264b1c886fc80a100e9915cf8ae07fdb4e5machenbach@chromium.org  return Representation::Tagged();
23d06b9264b1c886fc80a100e9915cf8ae07fdb4e5machenbach@chromium.org}
24d06b9264b1c886fc80a100e9915cf8ae07fdb4e5machenbach@chromium.org
25486536df718553960f9700559e80e5b10b0d5994dslomov@chromium.org} }  // namespace v8::internal
26486536df718553960f9700559e80e5b10b0d5994dslomov@chromium.org
27486536df718553960f9700559e80e5b10b0d5994dslomov@chromium.org#endif  // V8_PROPERTY_DETAILS_INL_H_
28