Avoid name clashes of builtins and runtime functions.

This makes it possible to use %Percent() notation to call any given builtin or runtime function in tests.

R=dslomov@chromium.org

Review URL: https://codereview.chromium.org/280243002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21298 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
jkummerow@chromium.org 2014-05-14 08:51:10 +00:00
parent 72fcd0dd05
commit f5631f7378
19 changed files with 107 additions and 107 deletions

View File

@ -45,7 +45,7 @@ function GetSortedArrayKeys(array, indices) {
}
function SparseJoinWithSeparator(array, len, convert, separator) {
function SparseJoinWithSeparatorJS(array, len, convert, separator) {
var keys = GetSortedArrayKeys(array, %GetArrayKeys(array, len));
var totalLength = 0;
var elements = new InternalArray(keys.length * 2);
@ -111,7 +111,7 @@ function Join(array, length, separator, convert) {
if (separator.length == 0) {
return SparseJoin(array, length, convert);
} else {
return SparseJoinWithSeparator(array, length, convert, separator);
return SparseJoinWithSeparatorJS(array, length, convert, separator);
}
}
@ -457,7 +457,7 @@ function ArrayPush() {
// Returns an array containing the array elements of the object followed
// by the array elements of each argument in order. See ECMA-262,
// section 15.4.4.7.
function ArrayConcat(arg1) { // length == 1
function ArrayConcatJS(arg1) { // length == 1
CHECK_OBJECT_COERCIBLE(this, "Array.prototype.concat");
var array = ToObject(this);
@ -1492,7 +1492,7 @@ function SetUpArray() {
"join", getFunction("join", ArrayJoin),
"pop", getFunction("pop", ArrayPop),
"push", getFunction("push", ArrayPush, 1),
"concat", getFunction("concat", ArrayConcat, 1),
"concat", getFunction("concat", ArrayConcatJS, 1),
"reverse", getFunction("reverse", ArrayReverse),
"shift", getFunction("shift", ArrayShift),
"unshift", getFunction("unshift", ArrayUnshift, 1),
@ -1516,7 +1516,7 @@ function SetUpArray() {
// exposed to user code.
// Adding only the functions that are actually used.
SetUpLockedPrototype(InternalArray, $Array(), $Array(
"concat", getFunction("concat", ArrayConcat),
"concat", getFunction("concat", ArrayConcatJS),
"indexOf", getFunction("indexOf", ArrayIndexOf),
"join", getFunction("join", ArrayJoin),
"pop", getFunction("pop", ArrayPop),

View File

@ -62,7 +62,7 @@ function ArrayBufferSlice(start, end) {
return result;
}
function ArrayBufferIsView(obj) {
function ArrayBufferIsViewJS(obj) {
return %ArrayBufferIsView(obj);
}
@ -79,7 +79,7 @@ function SetUpArrayBuffer() {
InstallGetter($ArrayBuffer.prototype, "byteLength", ArrayBufferGetByteLen);
InstallFunctions($ArrayBuffer, DONT_ENUM, $Array(
"isView", ArrayBufferIsView
"isView", ArrayBufferIsViewJS
));
InstallFunctions($ArrayBuffer.prototype, DONT_ENUM, $Array(

View File

@ -1548,7 +1548,7 @@ void Genesis::InstallNativeFunctions() {
void Genesis::InstallExperimentalNativeFunctions() {
INSTALL_NATIVE(JSFunction, "RunMicrotasks", run_microtasks);
INSTALL_NATIVE(JSFunction, "RunMicrotasksJS", run_microtasks);
INSTALL_NATIVE(JSFunction, "EnqueueMicrotask", enqueue_microtask);
if (FLAG_harmony_proxies) {

View File

@ -995,7 +995,7 @@ BUILTIN(ArrayConcat) {
JSObject::cast(native_context->array_function()->prototype());
if (!ArrayPrototypeHasNoElements(heap, native_context, array_proto)) {
AllowHeapAllocation allow_allocation;
return CallJsBuiltin(isolate, "ArrayConcat", args);
return CallJsBuiltin(isolate, "ArrayConcatJS", args);
}
// Iterate through all the arguments performing checks
@ -1007,7 +1007,7 @@ BUILTIN(ArrayConcat) {
!JSArray::cast(arg)->HasFastElements() ||
JSArray::cast(arg)->GetPrototype() != array_proto) {
AllowHeapAllocation allow_allocation;
return CallJsBuiltin(isolate, "ArrayConcat", args);
return CallJsBuiltin(isolate, "ArrayConcatJS", args);
}
int len = Smi::cast(JSArray::cast(arg)->length())->value();
@ -1020,7 +1020,7 @@ BUILTIN(ArrayConcat) {
if (result_len > FixedDoubleArray::kMaxLength) {
AllowHeapAllocation allow_allocation;
return CallJsBuiltin(isolate, "ArrayConcat", args);
return CallJsBuiltin(isolate, "ArrayConcatJS", args);
}
ElementsKind arg_kind = JSArray::cast(arg)->map()->elements_kind();

View File

@ -43,7 +43,7 @@ function SetConstructor() {
}
function SetAdd(key) {
function SetAddJS(key) {
if (!IS_SET(this)) {
throw MakeTypeError('incompatible_method_receiver',
['Set.prototype.add', this]);
@ -52,7 +52,7 @@ function SetAdd(key) {
}
function SetHas(key) {
function SetHasJS(key) {
if (!IS_SET(this)) {
throw MakeTypeError('incompatible_method_receiver',
['Set.prototype.has', this]);
@ -61,7 +61,7 @@ function SetHas(key) {
}
function SetDelete(key) {
function SetDeleteJS(key) {
if (!IS_SET(this)) {
throw MakeTypeError('incompatible_method_receiver',
['Set.prototype.delete', this]);
@ -76,7 +76,7 @@ function SetDelete(key) {
}
function SetGetSize() {
function SetGetSizeJS() {
if (!IS_SET(this)) {
throw MakeTypeError('incompatible_method_receiver',
['Set.prototype.size', this]);
@ -85,7 +85,7 @@ function SetGetSize() {
}
function SetClear() {
function SetClearJS() {
if (!IS_SET(this)) {
throw MakeTypeError('incompatible_method_receiver',
['Set.prototype.clear', this]);
@ -128,12 +128,12 @@ function SetUpSet() {
%FunctionSetLength(SetForEach, 1);
// Set up the non-enumerable functions on the Set prototype object.
InstallGetter($Set.prototype, "size", SetGetSize);
InstallGetter($Set.prototype, "size", SetGetSizeJS);
InstallFunctions($Set.prototype, DONT_ENUM, $Array(
"add", SetAdd,
"has", SetHas,
"delete", SetDelete,
"clear", SetClear,
"add", SetAddJS,
"has", SetHasJS,
"delete", SetDeleteJS,
"clear", SetClearJS,
"forEach", SetForEach
));
}
@ -153,7 +153,7 @@ function MapConstructor() {
}
function MapGet(key) {
function MapGetJS(key) {
if (!IS_MAP(this)) {
throw MakeTypeError('incompatible_method_receiver',
['Map.prototype.get', this]);
@ -162,7 +162,7 @@ function MapGet(key) {
}
function MapSet(key, value) {
function MapSetJS(key, value) {
if (!IS_MAP(this)) {
throw MakeTypeError('incompatible_method_receiver',
['Map.prototype.set', this]);
@ -171,7 +171,7 @@ function MapSet(key, value) {
}
function MapHas(key) {
function MapHasJS(key) {
if (!IS_MAP(this)) {
throw MakeTypeError('incompatible_method_receiver',
['Map.prototype.has', this]);
@ -180,7 +180,7 @@ function MapHas(key) {
}
function MapDelete(key) {
function MapDeleteJS(key) {
if (!IS_MAP(this)) {
throw MakeTypeError('incompatible_method_receiver',
['Map.prototype.delete', this]);
@ -189,7 +189,7 @@ function MapDelete(key) {
}
function MapGetSize() {
function MapGetSizeJS() {
if (!IS_MAP(this)) {
throw MakeTypeError('incompatible_method_receiver',
['Map.prototype.size', this]);
@ -198,7 +198,7 @@ function MapGetSize() {
}
function MapClear() {
function MapClearJS() {
if (!IS_MAP(this)) {
throw MakeTypeError('incompatible_method_receiver',
['Map.prototype.clear', this]);
@ -241,13 +241,13 @@ function SetUpMap() {
%FunctionSetLength(MapForEach, 1);
// Set up the non-enumerable functions on the Map prototype object.
InstallGetter($Map.prototype, "size", MapGetSize);
InstallGetter($Map.prototype, "size", MapGetSizeJS);
InstallFunctions($Map.prototype, DONT_ENUM, $Array(
"get", MapGet,
"set", MapSet,
"has", MapHas,
"delete", MapDelete,
"clear", MapClear,
"get", MapGetJS,
"set", MapSetJS,
"has", MapHasJS,
"delete", MapDeleteJS,
"clear", MapClearJS,
"forEach", MapForEach
));
}

View File

@ -132,7 +132,7 @@ function MathHypot(x, y) { // Function length is 2.
// ES6 draft 09-27-13, section 20.2.2.16.
function MathFround(x) {
function MathFroundJS(x) {
return %MathFround(TO_NUMBER_INLINE(x));
}
@ -234,7 +234,7 @@ function ExtendMath() {
"log10", MathLog10,
"log2", MathLog2,
"hypot", MathHypot,
"fround", MathFround,
"fround", MathFroundJS,
"clz32", MathClz32,
"cbrt", MathCbrt,
"log1p", MathLog1p,

View File

@ -11126,7 +11126,7 @@ void HOptimizedGraphBuilder::GenerateMathLog(CallRuntime* call) {
}
void HOptimizedGraphBuilder::GenerateMathSqrt(CallRuntime* call) {
void HOptimizedGraphBuilder::GenerateMathSqrtRT(CallRuntime* call) {
ASSERT(call->arguments()->length() == 1);
CHECK_ALIVE(VisitForValue(call->arguments()->at(0)));
HValue* value = Pop();

View File

@ -47,7 +47,7 @@ function MathAtan(x) {
// ECMA 262 - 15.8.2.5
// The naming of y and x matches the spec, as does the order in which
// ToNumber (valueOf) is called.
function MathAtan2(y, x) {
function MathAtan2JS(y, x) {
return %MathAtan2(TO_NUMBER_INLINE(y), TO_NUMBER_INLINE(x));
}
@ -64,7 +64,7 @@ function MathCos(x) {
// ECMA 262 - 15.8.2.8
function MathExp(x) {
return %MathExp(TO_NUMBER_INLINE(x));
return %MathExpRT(TO_NUMBER_INLINE(x));
}
// ECMA 262 - 15.8.2.9
@ -79,7 +79,7 @@ function MathFloor(x) {
// has to be -0, which wouldn't be the case with the shift.
return TO_UINT32(x);
} else {
return %MathFloor(x);
return %MathFloorRT(x);
}
}
@ -173,7 +173,7 @@ function MathSin(x) {
// ECMA 262 - 15.8.2.17
function MathSqrt(x) {
return %_MathSqrt(TO_NUMBER_INLINE(x));
return %_MathSqrtRT(TO_NUMBER_INLINE(x));
}
// ECMA 262 - 15.8.2.18
@ -296,7 +296,7 @@ function SetUpMath() {
"sin", MathSin,
"sqrt", MathSqrt,
"tan", MathTan,
"atan2", MathAtan2,
"atan2", MathAtan2JS,
"pow", MathPow,
"max", MathMax,
"min", MathMin,

View File

@ -957,12 +957,12 @@ function CallSiteToString() {
var methodName = this.getMethodName();
if (functionName) {
if (typeName &&
%_CallFunction(functionName, typeName, StringIndexOf) != 0) {
%_CallFunction(functionName, typeName, StringIndexOfJS) != 0) {
line += typeName + ".";
}
line += functionName;
if (methodName &&
(%_CallFunction(functionName, "." + methodName, StringIndexOf) !=
(%_CallFunction(functionName, "." + methodName, StringIndexOfJS) !=
functionName.length - methodName.length - 1)) {
line += " [as " + methodName + "]";
}

View File

@ -35,7 +35,7 @@
var observationState;
function GetObservationState() {
function GetObservationStateJS() {
if (IS_UNDEFINED(observationState))
observationState = %GetObservationState();
@ -76,7 +76,7 @@ var contextMaps;
function GetContextMaps() {
if (IS_UNDEFINED(contextMaps)) {
var map = GetWeakMapWrapper();
var observationState = GetObservationState();
var observationState = GetObservationStateJS();
contextMaps = {
callbackInfoMap: new map(observationState.callbackInfoMap),
objectInfoMap: new map(observationState.objectInfoMap),
@ -100,15 +100,15 @@ function GetNotifierObjectInfoMap() {
}
function GetPendingObservers() {
return GetObservationState().pendingObservers;
return GetObservationStateJS().pendingObservers;
}
function SetPendingObservers(pendingObservers) {
GetObservationState().pendingObservers = pendingObservers;
GetObservationStateJS().pendingObservers = pendingObservers;
}
function GetNextCallbackPriority() {
return GetObservationState().nextCallbackPriority++;
return GetObservationStateJS().nextCallbackPriority++;
}
function nullProtoObject() {
@ -440,7 +440,7 @@ function ObjectInfoEnqueueExternalChangeRecord(objectInfo, changeRecord, type) {
%DefineOrRedefineDataProperty(newRecord, prop, changeRecord[prop],
READ_ONLY + DONT_DELETE);
}
ObjectFreeze(newRecord);
ObjectFreezeJS(newRecord);
ObjectInfoEnqueueInternalChangeRecord(objectInfo, newRecord);
}
@ -488,8 +488,8 @@ function EnqueueSpliceRecord(array, index, removed, addedCount) {
addedCount: addedCount
};
ObjectFreeze(changeRecord);
ObjectFreeze(changeRecord.removed);
ObjectFreezeJS(changeRecord);
ObjectFreezeJS(changeRecord.removed);
ObjectInfoEnqueueInternalChangeRecord(objectInfo, changeRecord);
}
@ -512,7 +512,7 @@ function NotifyChange(type, object, name, oldValue) {
};
}
ObjectFreeze(changeRecord);
ObjectFreezeJS(changeRecord);
ObjectInfoEnqueueInternalChangeRecord(objectInfo, changeRecord);
}

View File

@ -80,7 +80,7 @@ function RegExpConstructor(pattern, flags) {
// were called again. In SpiderMonkey, this method returns the regexp object.
// In JSC, it returns undefined. For compatibility with JSC, we match their
// behavior.
function RegExpCompile(pattern, flags) {
function RegExpCompileJS(pattern, flags) {
// Both JSC and SpiderMonkey treat a missing pattern argument as the
// empty subject string, and an actual undefined value passed as the
// pattern as the string 'undefined'. Note that JSC is inconsistent
@ -381,7 +381,7 @@ function SetUpRegExp() {
"exec", RegExpExec,
"test", RegExpTest,
"toString", RegExpToString,
"compile", RegExpCompile
"compile", RegExpCompileJS
));
// The length of compile is 1 in SpiderMonkey.

View File

@ -7850,7 +7850,7 @@ RUNTIME_FUNCTION(Runtime_MathAtan2) {
}
RUNTIME_FUNCTION(Runtime_MathExp) {
RUNTIME_FUNCTION(Runtime_MathExpRT) {
HandleScope scope(isolate);
ASSERT(args.length() == 1);
isolate->counters()->math_exp()->Increment();
@ -7861,7 +7861,7 @@ RUNTIME_FUNCTION(Runtime_MathExp) {
}
RUNTIME_FUNCTION(Runtime_MathFloor) {
RUNTIME_FUNCTION(Runtime_MathFloorRT) {
HandleScope scope(isolate);
ASSERT(args.length() == 1);
isolate->counters()->math_floor()->Increment();
@ -7956,7 +7956,7 @@ RUNTIME_FUNCTION(Runtime_RoundNumber) {
}
RUNTIME_FUNCTION(Runtime_MathSqrt) {
RUNTIME_FUNCTION(Runtime_MathSqrtRT) {
HandleScope scope(isolate);
ASSERT(args.length() == 1);
isolate->counters()->math_sqrt()->Increment();

View File

@ -138,9 +138,9 @@ namespace internal {
F(MathAcos, 1, 1) \
F(MathAsin, 1, 1) \
F(MathAtan, 1, 1) \
F(MathFloor, 1, 1) \
F(MathFloorRT, 1, 1) \
F(MathAtan2, 2, 1) \
F(MathExp, 1, 1) \
F(MathExpRT, 1, 1) \
F(RoundNumber, 1, 1) \
F(MathFround, 1, 1) \
\
@ -684,7 +684,7 @@ namespace internal {
F(ConstructDouble, 2, 1) \
F(DoubleHi, 1, 1) \
F(DoubleLo, 1, 1) \
F(MathSqrt, 1, 1) \
F(MathSqrtRT, 1, 1) \
F(MathLog, 1, 1) \
/* Debugger */ \
F(DebugCallbackSupportsStepping, 1, 1)

View File

@ -83,7 +83,7 @@ function StringConcat() {
// ECMA-262 section 15.5.4.7
function StringIndexOf(pattern /* position */) { // length == 1
function StringIndexOfJS(pattern /* position */) { // length == 1
CHECK_OBJECT_COERCIBLE(this, "String.prototype.indexOf");
var subject = TO_STRING_INLINE(this);
@ -100,7 +100,7 @@ function StringIndexOf(pattern /* position */) { // length == 1
// ECMA-262 section 15.5.4.8
function StringLastIndexOf(pat /* position */) { // length == 1
function StringLastIndexOfJS(pat /* position */) { // length == 1
CHECK_OBJECT_COERCIBLE(this, "String.prototype.lastIndexOf");
var sub = TO_STRING_INLINE(this);
@ -131,7 +131,7 @@ function StringLastIndexOf(pat /* position */) { // length == 1
//
// This function is implementation specific. For now, we do not
// do anything locale specific.
function StringLocaleCompare(other) {
function StringLocaleCompareJS(other) {
CHECK_OBJECT_COERCIBLE(this, "String.prototype.localeCompare");
return %StringLocaleCompare(TO_STRING_INLINE(this),
@ -140,7 +140,7 @@ function StringLocaleCompare(other) {
// ECMA-262 section 15.5.4.10
function StringMatch(regexp) {
function StringMatchJS(regexp) {
CHECK_OBJECT_COERCIBLE(this, "String.prototype.match");
var subject = TO_STRING_INLINE(this);
@ -170,7 +170,7 @@ var NORMALIZATION_FORMS = ['NFC', 'NFD', 'NFKC', 'NFKD'];
// For now we do nothing, as proper normalization requires big tables.
// If Intl is enabled, then i18n.js will override it and provide the the
// proper functionality.
function StringNormalize(form) {
function StringNormalizeJS(form) {
CHECK_OBJECT_COERCIBLE(this, "String.prototype.normalize");
var form = form ? TO_STRING_INLINE(form) : 'NFC';
@ -585,7 +585,7 @@ function StringSlice(start, end) {
// ECMA-262 section 15.5.4.14
function StringSplit(separator, limit) {
function StringSplitJS(separator, limit) {
CHECK_OBJECT_COERCIBLE(this, "String.prototype.split");
var subject = TO_STRING_INLINE(this);
@ -756,7 +756,7 @@ function StringSubstr(start, n) {
// ECMA-262, 15.5.4.16
function StringToLowerCase() {
function StringToLowerCaseJS() {
CHECK_OBJECT_COERCIBLE(this, "String.prototype.toLowerCase");
return %StringToLowerCase(TO_STRING_INLINE(this));
@ -772,7 +772,7 @@ function StringToLocaleLowerCase() {
// ECMA-262, 15.5.4.18
function StringToUpperCase() {
function StringToUpperCaseJS() {
CHECK_OBJECT_COERCIBLE(this, "String.prototype.toUpperCase");
return %StringToUpperCase(TO_STRING_INLINE(this));
@ -787,7 +787,7 @@ function StringToLocaleUpperCase() {
}
// ES5, 15.5.4.20
function StringTrim() {
function StringTrimJS() {
CHECK_OBJECT_COERCIBLE(this, "String.prototype.trim");
return %StringTrim(TO_STRING_INLINE(this), true, true);
@ -935,22 +935,22 @@ function SetUpString() {
"charAt", StringCharAt,
"charCodeAt", StringCharCodeAt,
"concat", StringConcat,
"indexOf", StringIndexOf,
"lastIndexOf", StringLastIndexOf,
"localeCompare", StringLocaleCompare,
"match", StringMatch,
"normalize", StringNormalize,
"indexOf", StringIndexOfJS,
"lastIndexOf", StringLastIndexOfJS,
"localeCompare", StringLocaleCompareJS,
"match", StringMatchJS,
"normalize", StringNormalizeJS,
"replace", StringReplace,
"search", StringSearch,
"slice", StringSlice,
"split", StringSplit,
"split", StringSplitJS,
"substring", StringSubstring,
"substr", StringSubstr,
"toLowerCase", StringToLowerCase,
"toLowerCase", StringToLowerCaseJS,
"toLocaleLowerCase", StringToLocaleLowerCase,
"toUpperCase", StringToUpperCase,
"toUpperCase", StringToUpperCaseJS,
"toLocaleUpperCase", StringToLocaleUpperCase,
"trim", StringTrim,
"trim", StringTrimJS,
"trimLeft", StringTrimLeft,
"trimRight", StringTrimRight,
"link", StringLink,

View File

@ -403,14 +403,14 @@ function IsValidHex(s) {
// ECMA-262 - B.2.1.
function URIEscape(str) {
function URIEscapeJS(str) {
var s = ToString(str);
return %URIEscape(s);
}
// ECMA-262 - B.2.2.
function URIUnescape(str) {
function URIUnescapeJS(str) {
var s = ToString(str);
return %URIUnescape(s);
}
@ -424,8 +424,8 @@ function SetUpUri() {
// Set up non-enumerable URI functions on the global object and set
// their names.
InstallFunctions(global, DONT_ENUM, $Array(
"escape", URIEscape,
"unescape", URIUnescape,
"escape", URIEscapeJS,
"unescape", URIUnescapeJS,
"decodeURI", URIDecode,
"decodeURIComponent", URIDecodeComponent,
"encodeURI", URIEncode,

View File

@ -263,7 +263,7 @@ function ObjectPropertyIsEnumerable(V) {
// TODO(rossberg): adjust once there is a story for symbols vs proxies.
if (IS_SYMBOL(V)) return false;
var desc = GetOwnProperty(this, P);
var desc = GetOwnPropertyJS(this, P);
return IS_UNDEFINED(desc) ? false : desc.isEnumerable();
}
return %IsPropertyEnumerable(ToObject(this), P);
@ -627,7 +627,7 @@ function CallTrap2(handler, name, defaultTrap, x, y) {
// ES5 section 8.12.1.
function GetOwnProperty(obj, v) {
function GetOwnPropertyJS(obj, v) {
var p = ToName(v);
if (%IsJSProxy(obj)) {
// TODO(rossberg): adjust once there is a story for symbols vs proxies.
@ -659,7 +659,7 @@ function GetOwnProperty(obj, v) {
// ES5 section 8.12.7.
function Delete(obj, p, should_throw) {
var desc = GetOwnProperty(obj, p);
var desc = GetOwnPropertyJS(obj, p);
if (IS_UNDEFINED(desc)) return true;
if (desc.isConfigurable()) {
%DeleteProperty(obj, p, 0);
@ -866,7 +866,7 @@ function DefineArrayProperty(obj, p, desc, should_throw) {
if (new_length != ToNumber(desc.getValue())) {
throw new $RangeError('defineProperty() array length out of range');
}
var length_desc = GetOwnProperty(obj, "length");
var length_desc = GetOwnPropertyJS(obj, "length");
if (new_length != length && !length_desc.isWritable()) {
if (should_throw) {
throw MakeTypeError("redefine_disallowed", [p]);
@ -888,7 +888,7 @@ function DefineArrayProperty(obj, p, desc, should_throw) {
while (new_length < length--) {
var index = ToString(length);
if (emit_splice) {
var deletedDesc = GetOwnProperty(obj, index);
var deletedDesc = GetOwnPropertyJS(obj, index);
if (deletedDesc && deletedDesc.hasValue())
removed[length - new_length] = deletedDesc.getValue();
}
@ -935,7 +935,7 @@ function DefineArrayProperty(obj, p, desc, should_throw) {
BeginPerformSplice(obj);
}
var length_desc = GetOwnProperty(obj, "length");
var length_desc = GetOwnPropertyJS(obj, "length");
if ((index >= length && !length_desc.isWritable()) ||
!DefineObjectProperty(obj, p, desc, true)) {
if (emit_splice)
@ -1007,7 +1007,7 @@ function ObjectGetOwnPropertyDescriptor(obj, p) {
throw MakeTypeError("called_on_non_object",
["Object.getOwnPropertyDescriptor"]);
}
var desc = GetOwnProperty(obj, p);
var desc = GetOwnPropertyJS(obj, p);
return FromPropertyDescriptor(desc);
}
@ -1157,7 +1157,7 @@ function ObjectDefineProperty(obj, p, attributes) {
for (var i = 0; i < names.length; i++) {
var N = names[i];
if (!(%HasLocalProperty(standardNames, N))) {
var attr = GetOwnProperty(attributes, N);
var attr = GetOwnPropertyJS(attributes, N);
DefineOwnProperty(descObj, N, attr, true);
}
}
@ -1242,7 +1242,7 @@ function ObjectSeal(obj) {
var names = ObjectGetOwnPropertyNames(obj);
for (var i = 0; i < names.length; i++) {
var name = names[i];
var desc = GetOwnProperty(obj, name);
var desc = GetOwnPropertyJS(obj, name);
if (desc.isConfigurable()) {
desc.setConfigurable(false);
DefineOwnProperty(obj, name, desc, true);
@ -1254,7 +1254,7 @@ function ObjectSeal(obj) {
// ES5 section 15.2.3.9.
function ObjectFreeze(obj) {
function ObjectFreezeJS(obj) {
if (!IS_SPEC_OBJECT(obj)) {
throw MakeTypeError("called_on_non_object", ["Object.freeze"]);
}
@ -1266,7 +1266,7 @@ function ObjectFreeze(obj) {
var names = ObjectGetOwnPropertyNames(obj);
for (var i = 0; i < names.length; i++) {
var name = names[i];
var desc = GetOwnProperty(obj, name);
var desc = GetOwnPropertyJS(obj, name);
if (desc.isWritable() || desc.isConfigurable()) {
if (IsDataDescriptor(desc)) desc.setWritable(false);
desc.setConfigurable(false);
@ -1310,7 +1310,7 @@ function ObjectIsSealed(obj) {
var names = ObjectGetOwnPropertyNames(obj);
for (var i = 0; i < names.length; i++) {
var name = names[i];
var desc = GetOwnProperty(obj, name);
var desc = GetOwnPropertyJS(obj, name);
if (desc.isConfigurable()) return false;
}
return true;
@ -1331,7 +1331,7 @@ function ObjectIsFrozen(obj) {
var names = ObjectGetOwnPropertyNames(obj);
for (var i = 0; i < names.length; i++) {
var name = names[i];
var desc = GetOwnProperty(obj, name);
var desc = GetOwnPropertyJS(obj, name);
if (IsDataDescriptor(desc) && desc.isWritable()) return false;
if (desc.isConfigurable()) return false;
}
@ -1422,7 +1422,7 @@ function SetUpObject() {
"create", ObjectCreate,
"defineProperty", ObjectDefineProperty,
"defineProperties", ObjectDefineProperties,
"freeze", ObjectFreeze,
"freeze", ObjectFreezeJS,
"getPrototypeOf", ObjectGetPrototypeOf,
"setPrototypeOf", ObjectSetPrototypeOf,
"getOwnPropertyDescriptor", ObjectGetOwnPropertyDescriptor,
@ -1554,7 +1554,7 @@ function NumberValueOf() {
// ECMA-262 section 15.7.4.5
function NumberToFixed(fractionDigits) {
function NumberToFixedJS(fractionDigits) {
var x = this;
if (!IS_NUMBER(this)) {
if (!IS_NUMBER_WRAPPER(this)) {
@ -1579,7 +1579,7 @@ function NumberToFixed(fractionDigits) {
// ECMA-262 section 15.7.4.6
function NumberToExponential(fractionDigits) {
function NumberToExponentialJS(fractionDigits) {
var x = this;
if (!IS_NUMBER(this)) {
if (!IS_NUMBER_WRAPPER(this)) {
@ -1605,7 +1605,7 @@ function NumberToExponential(fractionDigits) {
// ECMA-262 section 15.7.4.7
function NumberToPrecision(precision) {
function NumberToPrecisionJS(precision) {
var x = this;
if (!IS_NUMBER(this)) {
if (!IS_NUMBER_WRAPPER(this)) {
@ -1694,9 +1694,9 @@ function SetUpNumber() {
"toString", NumberToString,
"toLocaleString", NumberToLocaleString,
"valueOf", NumberValueOf,
"toFixed", NumberToFixed,
"toExponential", NumberToExponential,
"toPrecision", NumberToPrecision
"toFixed", NumberToFixedJS,
"toExponential", NumberToExponentialJS,
"toPrecision", NumberToPrecisionJS
));
// Harmony Number constructor additions
@ -1823,7 +1823,7 @@ function NewFunctionString(arguments, function_token) {
// If the formal parameters string include ) - an illegal
// character - it may make the combined function expression
// compile. We avoid this problem by checking for this early on.
if (%_CallFunction(p, ')', StringIndexOf) != -1) {
if (%_CallFunction(p, ')', StringIndexOfJS) != -1) {
throw MakeSyntaxError('paren_in_arg_string', []);
}
// If the formal parameters include an unbalanced block comment, the
@ -1870,7 +1870,7 @@ SetUpFunction();
// Eventually, we should move to a real event queue that allows to maintain
// relative ordering of different kinds of tasks.
function RunMicrotasks() {
function RunMicrotasksJS() {
while (%SetMicrotaskPending(false)) {
var microtaskState = %GetMicrotaskState();
if (IS_UNDEFINED(microtaskState.queue))

View File

@ -2,4 +2,4 @@
// AUTO-GENERATED BY tools/generate-runtime-tests.py, DO NOT MODIFY
// Flags: --allow-natives-syntax --harmony
var _x = 1.5;
%MathExp(_x);
%MathExpRT(_x);

View File

@ -2,4 +2,4 @@
// AUTO-GENERATED BY tools/generate-runtime-tests.py, DO NOT MODIFY
// Flags: --allow-natives-syntax --harmony
var _x = 1.5;
%MathFloor(_x);
%MathFloorRT(_x);

View File

@ -2,4 +2,4 @@
// AUTO-GENERATED BY tools/generate-runtime-tests.py, DO NOT MODIFY
// Flags: --allow-natives-syntax --harmony
var _x = 1.5;
%_MathSqrt(_x);
%_MathSqrtRT(_x);