1a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# Copyright 2006-2009 the V8 project authors. All rights reserved. 2a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# Redistribution and use in source and binary forms, with or without 3a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# modification, are permitted provided that the following conditions are 4a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# met: 5a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# 6a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# * Redistributions of source code must retain the above copyright 7a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# notice, this list of conditions and the following disclaimer. 8a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# * Redistributions in binary form must reproduce the above 9a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# copyright notice, this list of conditions and the following 10a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# disclaimer in the documentation and/or other materials provided 11a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# with the distribution. 12a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# * Neither the name of Google Inc. nor the names of its 13a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# contributors may be used to endorse or promote products derived 14a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# from this software without specific prior written permission. 15a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# 16a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 17a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 18a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 19a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 20a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 21a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 22a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 26a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 28a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# Dictionary that is passed as defines for js2c.py. 293ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch# Used for defines that must be defined for all native JS files. 30a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 31a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockconst NONE = 0; 32a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockconst READ_ONLY = 1; 33a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockconst DONT_ENUM = 2; 34a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockconst DONT_DELETE = 4; 35a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 36a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# Constants used for getter and setter operations. 37a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockconst GETTER = 0; 38a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockconst SETTER = 1; 39a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 40a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# These definitions must match the index of the properties in objects.h. 413fb3ca8c7ca439d408449a395897395c0faae8d1Ben Murdochconst kApiTagOffset = 0; 423fb3ca8c7ca439d408449a395897395c0faae8d1Ben Murdochconst kApiPropertyListOffset = 1; 433fb3ca8c7ca439d408449a395897395c0faae8d1Ben Murdochconst kApiSerialNumberOffset = 2; 443fb3ca8c7ca439d408449a395897395c0faae8d1Ben Murdochconst kApiConstructorOffset = 2; 453fb3ca8c7ca439d408449a395897395c0faae8d1Ben Murdochconst kApiPrototypeTemplateOffset = 5; 463fb3ca8c7ca439d408449a395897395c0faae8d1Ben Murdochconst kApiParentTemplateOffset = 6; 4769a99ed0b2b2ef69d393c371b03db3a98aaf880eBen Murdochconst kApiFlagOffset = 14; 48a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 49a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockconst NO_HINT = 0; 50a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockconst NUMBER_HINT = 1; 51a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockconst STRING_HINT = 2; 52a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 53a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockconst kFunctionTag = 0; 54a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockconst kNewObjectTag = 1; 55a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 56a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# For date.js. 57a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockconst HoursPerDay = 24; 58a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockconst MinutesPerHour = 60; 59a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockconst SecondsPerMinute = 60; 60a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockconst msPerSecond = 1000; 61a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockconst msPerMinute = 60000; 62a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockconst msPerHour = 3600000; 63a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockconst msPerDay = 86400000; 64a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockconst msPerMonth = 2592000000; 65a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 66a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# For apinatives.js 67a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockconst kUninitialized = -1; 6869a99ed0b2b2ef69d393c371b03db3a98aaf880eBen Murdochconst kReadOnlyPrototypeBit = 3; # For FunctionTemplateInfo, matches objects.h 69a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 70a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# Note: kDayZeroInJulianDay = ToJulianDay(1970, 0, 1). 71a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockconst kInvalidDate = 'Invalid Date'; 72a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockconst kDayZeroInJulianDay = 2440588; 73a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockconst kMonthMask = 0x1e0; 74a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockconst kDayMask = 0x01f; 75a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockconst kYearShift = 9; 76a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockconst kMonthShift = 5; 77a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 786ded16be15dd865a9b21ea304d5273c8be299c87Steve Block# Limits for parts of the date, so that we support all the dates that 796ded16be15dd865a9b21ea304d5273c8be299c87Steve Block# ECMA 262 - 15.9.1.1 requires us to, but at the same time be sure that 806ded16be15dd865a9b21ea304d5273c8be299c87Steve Block# the date (days since 1970) is in SMI range. 816ded16be15dd865a9b21ea304d5273c8be299c87Steve Blockconst kMinYear = -1000000; 826ded16be15dd865a9b21ea304d5273c8be299c87Steve Blockconst kMaxYear = 1000000; 836ded16be15dd865a9b21ea304d5273c8be299c87Steve Blockconst kMinMonth = -10000000; 846ded16be15dd865a9b21ea304d5273c8be299c87Steve Blockconst kMaxMonth = 10000000; 856ded16be15dd865a9b21ea304d5273c8be299c87Steve Block 866ded16be15dd865a9b21ea304d5273c8be299c87Steve Block# Native cache ids. 876ded16be15dd865a9b21ea304d5273c8be299c87Steve Blockconst STRING_TO_REGEXP_CACHE_ID = 0; 886ded16be15dd865a9b21ea304d5273c8be299c87Steve Block 89a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# Type query macros. 90402d937239b0e2fd11bf2f4fe972ad78aa9fd481Andrei Popescu# 91402d937239b0e2fd11bf2f4fe972ad78aa9fd481Andrei Popescu# Note: We have special support for typeof(foo) === 'bar' in the compiler. 92402d937239b0e2fd11bf2f4fe972ad78aa9fd481Andrei Popescu# It will *not* generate a runtime typeof call for the most important 93402d937239b0e2fd11bf2f4fe972ad78aa9fd481Andrei Popescu# values of 'bar'. 94a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockmacro IS_NULL(arg) = (arg === null); 95a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockmacro IS_NULL_OR_UNDEFINED(arg) = (arg == null); 96a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockmacro IS_UNDEFINED(arg) = (typeof(arg) === 'undefined'); 97a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockmacro IS_NUMBER(arg) = (typeof(arg) === 'number'); 98a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockmacro IS_STRING(arg) = (typeof(arg) === 'string'); 99a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockmacro IS_BOOLEAN(arg) = (typeof(arg) === 'boolean'); 100d0582a6c46733687d045e4188a1bcd0123c758a1Steve Blockmacro IS_OBJECT(arg) = (%_IsObject(arg)); 101a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockmacro IS_ARRAY(arg) = (%_IsArray(arg)); 102d0582a6c46733687d045e4188a1bcd0123c758a1Steve Blockmacro IS_FUNCTION(arg) = (%_IsFunction(arg)); 103402d937239b0e2fd11bf2f4fe972ad78aa9fd481Andrei Popescumacro IS_REGEXP(arg) = (%_IsRegExp(arg)); 1043ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochmacro IS_SET(arg) = (%_ClassOf(arg) === 'Set'); 1053ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochmacro IS_MAP(arg) = (%_ClassOf(arg) === 'Map'); 1063ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochmacro IS_WEAKMAP(arg) = (%_ClassOf(arg) === 'WeakMap'); 107a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockmacro IS_DATE(arg) = (%_ClassOf(arg) === 'Date'); 108a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockmacro IS_NUMBER_WRAPPER(arg) = (%_ClassOf(arg) === 'Number'); 109a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockmacro IS_STRING_WRAPPER(arg) = (%_ClassOf(arg) === 'String'); 110a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockmacro IS_BOOLEAN_WRAPPER(arg) = (%_ClassOf(arg) === 'Boolean'); 111a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockmacro IS_ERROR(arg) = (%_ClassOf(arg) === 'Error'); 112a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockmacro IS_SCRIPT(arg) = (%_ClassOf(arg) === 'Script'); 113a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockmacro IS_ARGUMENTS(arg) = (%_ClassOf(arg) === 'Arguments'); 114a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockmacro IS_GLOBAL(arg) = (%_ClassOf(arg) === 'global'); 115d91b9f7d46489a9ee00f9cb415630299c76a502bLeon Clarkemacro IS_UNDETECTABLE(arg) = (%_IsUndetectableObject(arg)); 116e46be819fca9468a0cd4e74859ce0f778eb8ca60Leon Clarkemacro FLOOR(arg) = $floor(arg); 117a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 11825f6136652d8341ed047e7fc1a450af5bd218ea9Kristian Monsen# Macro for ECMAScript 5 queries of the type: 11925f6136652d8341ed047e7fc1a450af5bd218ea9Kristian Monsen# "Type(O) is object." 120589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch# This is the same as being either a function or an object in V8 terminology 121589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch# (including proxies). 1223bec4d28b1f388dbc06a9c4276e1a03e86c52b04Ben Murdoch# In addition, an undetectable object is also included by this. 123589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdochmacro IS_SPEC_OBJECT(arg) = (%_IsSpecObject(arg)); 124589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch 125589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch# Macro for ECMAScript 5 queries of the type: 126589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch# "IsCallable(O)" 127589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch# We assume here that this is the same as being either a function or a function 128589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch# proxy. That ignores host objects with [[Call]] methods, but in most situations 129589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch# we cannot handle those anyway. 130589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdochmacro IS_SPEC_FUNCTION(arg) = (%_ClassOf(arg) === 'Function'); 13125f6136652d8341ed047e7fc1a450af5bd218ea9Kristian Monsen 1323ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch# Indices in bound function info retrieved by %BoundFunctionGetBindings(...). 1333ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochconst kBoundFunctionIndex = 0; 1343ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochconst kBoundThisIndex = 1; 1353ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochconst kBoundArgumentsStartIndex = 2; 1363ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch 137a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# Inline macros. Use %IS_VAR to make sure arg is evaluated only once. 138a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockmacro NUMBER_IS_NAN(arg) = (!%_IsSmi(%IS_VAR(arg)) && !(arg == arg)); 139589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdochmacro NUMBER_IS_FINITE(arg) = (%_IsSmi(%IS_VAR(arg)) || ((arg == arg) && (arg != 1/0) && (arg != -1/0))); 14080d68eab642096c1a48b6474d6ec33064b0ad1f5Kristian Monsenmacro TO_INTEGER(arg) = (%_IsSmi(%IS_VAR(arg)) ? arg : %NumberToInteger(ToNumber(arg))); 1418defd9ff6930b4e24729971a61cf7469daf119beSteve Blockmacro TO_INTEGER_MAP_MINUS_ZERO(arg) = (%_IsSmi(%IS_VAR(arg)) ? arg : %NumberToIntegerMapMinusZero(ToNumber(arg))); 142402d937239b0e2fd11bf2f4fe972ad78aa9fd481Andrei Popescumacro TO_INT32(arg) = (%_IsSmi(%IS_VAR(arg)) ? arg : (arg >> 0)); 143402d937239b0e2fd11bf2f4fe972ad78aa9fd481Andrei Popescumacro TO_UINT32(arg) = (arg >>> 0); 144402d937239b0e2fd11bf2f4fe972ad78aa9fd481Andrei Popescumacro TO_STRING_INLINE(arg) = (IS_STRING(%IS_VAR(arg)) ? arg : NonStringToString(arg)); 145086aeeaae12517475c22695a200be45495516549Ben Murdochmacro TO_NUMBER_INLINE(arg) = (IS_NUMBER(%IS_VAR(arg)) ? arg : NonNumberToNumber(arg)); 146257744e915dfc84d6d07a6b2accf8402d9ffc708Ben Murdochmacro TO_OBJECT_INLINE(arg) = (IS_SPEC_OBJECT(%IS_VAR(arg)) ? arg : ToObject(arg)); 1473fb3ca8c7ca439d408449a395897395c0faae8d1Ben Murdochmacro JSON_NUMBER_TO_STRING(arg) = ((%_IsSmi(%IS_VAR(arg)) || arg - arg == 0) ? %_NumberToString(arg) : "null"); 148a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 149a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# Macros implemented in Python. 150a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockpython macro CHAR_CODE(str) = ord(str[1]); 151a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 152a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# Constants used on an array to implement the properties of the RegExp object. 153a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockconst REGEXP_NUMBER_OF_CAPTURES = 0; 154a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockconst REGEXP_FIRST_CAPTURE = 3; 155a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 156a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# We can't put macros in macros so we use constants here. 157a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# REGEXP_NUMBER_OF_CAPTURES 158a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockmacro NUMBER_OF_CAPTURES(array) = ((array)[0]); 159a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 1606ded16be15dd865a9b21ea304d5273c8be299c87Steve Block# Limit according to ECMA 262 15.9.1.1 1616ded16be15dd865a9b21ea304d5273c8be299c87Steve Blockconst MAX_TIME_MS = 8640000000000000; 162b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch# Limit which is MAX_TIME_MS + msPerMonth. 163b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdochconst MAX_TIME_BEFORE_UTC = 8640002592000000; 1646ded16be15dd865a9b21ea304d5273c8be299c87Steve Block 165a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# Gets the value of a Date object. If arg is not a Date object 166a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# a type error is thrown. 1673ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochmacro CHECK_DATE(arg) = if (%_ClassOf(arg) !== 'Date') ThrowDateTypeError(); 1683ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochmacro LOCAL_DATE_VALUE(arg) = (%_DateField(arg, 0) + %_DateField(arg, 21)); 1693ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochmacro UTC_DATE_VALUE(arg) = (%_DateField(arg, 0)); 1703ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch 1713ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochmacro LOCAL_YEAR(arg) = (%_DateField(arg, 1)); 1723ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochmacro LOCAL_MONTH(arg) = (%_DateField(arg, 2)); 1733ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochmacro LOCAL_DAY(arg) = (%_DateField(arg, 3)); 1743ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochmacro LOCAL_WEEKDAY(arg) = (%_DateField(arg, 4)); 1753ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochmacro LOCAL_HOUR(arg) = (%_DateField(arg, 5)); 1763ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochmacro LOCAL_MIN(arg) = (%_DateField(arg, 6)); 1773ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochmacro LOCAL_SEC(arg) = (%_DateField(arg, 7)); 1783ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochmacro LOCAL_MS(arg) = (%_DateField(arg, 8)); 1793ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochmacro LOCAL_DAYS(arg) = (%_DateField(arg, 9)); 1803ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochmacro LOCAL_TIME_IN_DAY(arg) = (%_DateField(arg, 10)); 1813ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch 1823ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochmacro UTC_YEAR(arg) = (%_DateField(arg, 11)); 1833ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochmacro UTC_MONTH(arg) = (%_DateField(arg, 12)); 1843ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochmacro UTC_DAY(arg) = (%_DateField(arg, 13)); 1853ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochmacro UTC_WEEKDAY(arg) = (%_DateField(arg, 14)); 1863ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochmacro UTC_HOUR(arg) = (%_DateField(arg, 15)); 1873ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochmacro UTC_MIN(arg) = (%_DateField(arg, 16)); 1883ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochmacro UTC_SEC(arg) = (%_DateField(arg, 17)); 1893ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochmacro UTC_MS(arg) = (%_DateField(arg, 18)); 1903ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochmacro UTC_DAYS(arg) = (%_DateField(arg, 19)); 1913ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochmacro UTC_TIME_IN_DAY(arg) = (%_DateField(arg, 20)); 1923ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch 1933ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochmacro TIMEZONE_OFFSET(arg) = (%_DateField(arg, 21)); 1943ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch 1953ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochmacro SET_UTC_DATE_VALUE(arg, value) = (%DateSetValue(arg, value, 1)); 1963ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochmacro SET_LOCAL_DATE_VALUE(arg, value) = (%DateSetValue(arg, value, 0)); 197a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 1983ce2e2076e8e3e60cf1810eec160ea2d8557e9e7Steve Block# Last input and last subject of regexp matches. 199a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockmacro LAST_SUBJECT(array) = ((array)[1]); 200a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockmacro LAST_INPUT(array) = ((array)[2]); 201a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 202a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# REGEXP_FIRST_CAPTURE 203a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockmacro CAPTURE(index) = (3 + (index)); 204a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockconst CAPTURE0 = 3; 205a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockconst CAPTURE1 = 4; 2067f4d5bd8c03935e2c0cd412e561b8fc5a6a880aeBen Murdoch 207589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch# PropertyDescriptor return value indices - must match 2087f4d5bd8c03935e2c0cd412e561b8fc5a6a880aeBen Murdoch# PropertyDescriptorIndices in runtime.cc. 2097f4d5bd8c03935e2c0cd412e561b8fc5a6a880aeBen Murdochconst IS_ACCESSOR_INDEX = 0; 2107f4d5bd8c03935e2c0cd412e561b8fc5a6a880aeBen Murdochconst VALUE_INDEX = 1; 2117f4d5bd8c03935e2c0cd412e561b8fc5a6a880aeBen Murdochconst GETTER_INDEX = 2; 2127f4d5bd8c03935e2c0cd412e561b8fc5a6a880aeBen Murdochconst SETTER_INDEX = 3; 2137f4d5bd8c03935e2c0cd412e561b8fc5a6a880aeBen Murdochconst WRITABLE_INDEX = 4; 2147f4d5bd8c03935e2c0cd412e561b8fc5a6a880aeBen Murdochconst ENUMERABLE_INDEX = 5; 2157f4d5bd8c03935e2c0cd412e561b8fc5a6a880aeBen Murdochconst CONFIGURABLE_INDEX = 6; 216589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch 217589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch# For messages.js 218589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch# Matches Script::Type from objects.h 219589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdochconst TYPE_NATIVE = 0; 220589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdochconst TYPE_EXTENSION = 1; 221589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdochconst TYPE_NORMAL = 2; 222589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch 223589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch# Matches Script::CompilationType from objects.h 224589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdochconst COMPILATION_TYPE_HOST = 0; 225589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdochconst COMPILATION_TYPE_EVAL = 1; 226589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdochconst COMPILATION_TYPE_JSON = 2; 227589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch 228589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch# Matches Messages::kNoLineNumberInfo from v8.h 229589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdochconst kNoLineNumberInfo = 0; 230