/* List of defines generated by configure. Included with preprocessor flag,
 * -include, to avoid long list of -D defines on the compile command-line.
 * Do not edit.
 */

#ifndef _JS_CONFDEFS_H_
#define _JS_CONFDEFS_H_

#include "starboard/configuration.h"

#if SB_HAS(64_BIT_POINTERS)
#define JS_BYTES_PER_WORD 8
#define JS_BITS_PER_WORD_LOG2 6
#else
#define JS_BYTES_PER_WORD 4
#define JS_BITS_PER_WORD_LOG2 5
#endif

#if defined(COBALT_BUILD_TYPE_QA) || defined(COBALT_BUILD_TYPE_GOLD)
#define RELEASE_BUILD 1
#endif

#if defined(COBALT_BUILD_TYPE_DEBUG)
#define DEBUG 1
#define JS_DEBUG 1
#endif

// Disabling this will fall back to getenv for locale-specific number
// formatting.
// This can be removed when ENABLE_INTL_API is enabled, which requires a newer
// version of ICU.
#define HAVE_LOCALECONV 1

#define HAVE_VA_COPY 1
#define VA_COPY SB_VA_COPY

#define MOZILLA_UAVERSION "24.0"
#define MOZILLA_VERSION "24.2.0"
#define MOZILLA_VERSION_U 24.2.0
#define MOZJS_MAJOR_VERSION 24
#define MOZJS_MINOR_VERSION 2

#include "js/RequiredDefines.h"

#endif /* _JS_CONFDEFS_H_ */
