| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 57 F(GetPropertyNamesFast, 1, 1) \ | 57 F(GetPropertyNamesFast, 1, 1) \ |
| 58 F(GetLocalPropertyNames, 2, 1) \ | 58 F(GetLocalPropertyNames, 2, 1) \ |
| 59 F(GetLocalElementNames, 1, 1) \ | 59 F(GetLocalElementNames, 1, 1) \ |
| 60 F(GetInterceptorInfo, 1, 1) \ | 60 F(GetInterceptorInfo, 1, 1) \ |
| 61 F(GetNamedInterceptorPropertyNames, 1, 1) \ | 61 F(GetNamedInterceptorPropertyNames, 1, 1) \ |
| 62 F(GetIndexedInterceptorElementNames, 1, 1) \ | 62 F(GetIndexedInterceptorElementNames, 1, 1) \ |
| 63 F(GetArgumentsProperty, 1, 1) \ | 63 F(GetArgumentsProperty, 1, 1) \ |
| 64 F(ToFastProperties, 1, 1) \ | 64 F(ToFastProperties, 1, 1) \ |
| 65 F(FinishArrayPrototypeSetup, 1, 1) \ | 65 F(FinishArrayPrototypeSetup, 1, 1) \ |
| 66 F(SpecialArrayFunctions, 1, 1) \ | 66 F(SpecialArrayFunctions, 1, 1) \ |
| 67 F(IsCallable, 1, 1) \ |
| 67 F(IsClassicModeFunction, 1, 1) \ | 68 F(IsClassicModeFunction, 1, 1) \ |
| 68 F(GetDefaultReceiver, 1, 1) \ | 69 F(GetDefaultReceiver, 1, 1) \ |
| 69 \ | 70 \ |
| 70 F(GetPrototype, 1, 1) \ | 71 F(GetPrototype, 1, 1) \ |
| 71 F(SetPrototype, 2, 1) \ | 72 F(SetPrototype, 2, 1) \ |
| 72 F(IsInPrototypeChain, 2, 1) \ | 73 F(IsInPrototypeChain, 2, 1) \ |
| 73 \ | 74 \ |
| 74 F(GetOwnProperty, 2, 1) \ | 75 F(GetOwnProperty, 2, 1) \ |
| 75 \ | 76 \ |
| 76 F(IsExtensible, 1, 1) \ | 77 F(IsExtensible, 1, 1) \ |
| (...skipping 16 matching lines...) Expand all Loading... |
| 93 F(NotifyStubFailure, 0, 1) \ | 94 F(NotifyStubFailure, 0, 1) \ |
| 94 F(DeoptimizeFunction, 1, 1) \ | 95 F(DeoptimizeFunction, 1, 1) \ |
| 95 F(ClearFunctionTypeFeedback, 1, 1) \ | 96 F(ClearFunctionTypeFeedback, 1, 1) \ |
| 96 F(RunningInSimulator, 0, 1) \ | 97 F(RunningInSimulator, 0, 1) \ |
| 97 F(IsConcurrentRecompilationSupported, 0, 1) \ | 98 F(IsConcurrentRecompilationSupported, 0, 1) \ |
| 98 F(OptimizeFunctionOnNextCall, -1, 1) \ | 99 F(OptimizeFunctionOnNextCall, -1, 1) \ |
| 99 F(NeverOptimizeFunction, 1, 1) \ | 100 F(NeverOptimizeFunction, 1, 1) \ |
| 100 F(GetOptimizationStatus, -1, 1) \ | 101 F(GetOptimizationStatus, -1, 1) \ |
| 101 F(GetOptimizationCount, 1, 1) \ | 102 F(GetOptimizationCount, 1, 1) \ |
| 102 F(UnblockConcurrentRecompilation, 0, 1) \ | 103 F(UnblockConcurrentRecompilation, 0, 1) \ |
| 103 F(CompileForOnStackReplacement, 2, 1) \ | 104 F(CompileForOnStackReplacement, 1, 1) \ |
| 104 F(SetAllocationTimeout, 2, 1) \ | 105 F(SetAllocationTimeout, 2, 1) \ |
| 105 F(AllocateInNewSpace, 1, 1) \ | 106 F(AllocateInNewSpace, 1, 1) \ |
| 106 F(AllocateInTargetSpace, 2, 1) \ | 107 F(AllocateInTargetSpace, 2, 1) \ |
| 107 F(SetNativeFlag, 1, 1) \ | 108 F(SetNativeFlag, 1, 1) \ |
| 108 F(SetInlineBuiltinFlag, 1, 1) \ | 109 F(SetInlineBuiltinFlag, 1, 1) \ |
| 109 F(StoreArrayLiteralElement, 5, 1) \ | 110 F(StoreArrayLiteralElement, 5, 1) \ |
| 110 F(DebugCallbackSupportsStepping, 1, 1) \ | 111 F(DebugCallbackSupportsStepping, 1, 1) \ |
| 111 F(DebugPrepareStepInIfStepping, 1, 1) \ | 112 F(DebugPrepareStepInIfStepping, 1, 1) \ |
| 112 F(FlattenString, 1, 1) \ | 113 F(FlattenString, 1, 1) \ |
| 113 F(MigrateInstance, 1, 1) \ | 114 F(MigrateInstance, 1, 1) \ |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 172 \ | 173 \ |
| 173 F(NumberCompare, 3, 1) \ | 174 F(NumberCompare, 3, 1) \ |
| 174 F(SmiLexicographicCompare, 2, 1) \ | 175 F(SmiLexicographicCompare, 2, 1) \ |
| 175 F(StringCompare, 2, 1) \ | 176 F(StringCompare, 2, 1) \ |
| 176 \ | 177 \ |
| 177 /* Math */ \ | 178 /* Math */ \ |
| 178 F(Math_acos, 1, 1) \ | 179 F(Math_acos, 1, 1) \ |
| 179 F(Math_asin, 1, 1) \ | 180 F(Math_asin, 1, 1) \ |
| 180 F(Math_atan, 1, 1) \ | 181 F(Math_atan, 1, 1) \ |
| 181 F(Math_atan2, 2, 1) \ | 182 F(Math_atan2, 2, 1) \ |
| 182 F(Math_ceil, 1, 1) \ | |
| 183 F(Math_cos, 1, 1) \ | |
| 184 F(Math_exp, 1, 1) \ | 183 F(Math_exp, 1, 1) \ |
| 185 F(Math_floor, 1, 1) \ | 184 F(Math_floor, 1, 1) \ |
| 186 F(Math_log, 1, 1) \ | 185 F(Math_log, 1, 1) \ |
| 187 F(Math_pow, 2, 1) \ | 186 F(Math_pow, 2, 1) \ |
| 188 F(Math_pow_cfunction, 2, 1) \ | 187 F(Math_pow_cfunction, 2, 1) \ |
| 189 F(RoundNumber, 1, 1) \ | 188 F(RoundNumber, 1, 1) \ |
| 190 F(Math_sin, 1, 1) \ | |
| 191 F(Math_sqrt, 1, 1) \ | 189 F(Math_sqrt, 1, 1) \ |
| 192 F(Math_tan, 1, 1) \ | |
| 193 \ | 190 \ |
| 194 /* Regular expressions */ \ | 191 /* Regular expressions */ \ |
| 195 F(RegExpCompile, 3, 1) \ | 192 F(RegExpCompile, 3, 1) \ |
| 196 F(RegExpExec, 4, 1) \ | 193 F(RegExpExec, 4, 1) \ |
| 197 F(RegExpExecMultiple, 4, 1) \ | 194 F(RegExpExecMultiple, 4, 1) \ |
| 198 F(RegExpInitializeObject, 5, 1) \ | 195 F(RegExpInitializeObject, 5, 1) \ |
| 199 F(RegExpConstructResult, 3, 1) \ | 196 F(RegExpConstructResult, 3, 1) \ |
| 200 \ | 197 \ |
| 201 /* JSON */ \ | 198 /* JSON */ \ |
| 202 F(ParseJson, 1, 1) \ | 199 F(ParseJson, 1, 1) \ |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 293 F(EstimateNumberOfElements, 1, 1) \ | 290 F(EstimateNumberOfElements, 1, 1) \ |
| 294 F(ArrayConstructor, -1, 1) \ | 291 F(ArrayConstructor, -1, 1) \ |
| 295 F(InternalArrayConstructor, -1, 1) \ | 292 F(InternalArrayConstructor, -1, 1) \ |
| 296 \ | 293 \ |
| 297 /* Getters and Setters */ \ | 294 /* Getters and Setters */ \ |
| 298 F(LookupAccessor, 3, 1) \ | 295 F(LookupAccessor, 3, 1) \ |
| 299 \ | 296 \ |
| 300 /* Literals */ \ | 297 /* Literals */ \ |
| 301 F(MaterializeRegExpLiteral, 4, 1)\ | 298 F(MaterializeRegExpLiteral, 4, 1)\ |
| 302 F(CreateObjectLiteral, 4, 1) \ | 299 F(CreateObjectLiteral, 4, 1) \ |
| 303 F(CreateArrayLiteral, 3, 1) \ | 300 F(CreateArrayLiteral, 4, 1) \ |
| 301 F(CreateArrayLiteralStubBailout, 3, 1) \ |
| 304 \ | 302 \ |
| 305 /* Harmony generators */ \ | 303 /* Harmony generators */ \ |
| 306 F(CreateJSGeneratorObject, 0, 1) \ | 304 F(CreateJSGeneratorObject, 0, 1) \ |
| 307 F(SuspendJSGeneratorObject, 1, 1) \ | 305 F(SuspendJSGeneratorObject, 1, 1) \ |
| 308 F(ResumeJSGeneratorObject, 3, 1) \ | 306 F(ResumeJSGeneratorObject, 3, 1) \ |
| 309 F(ThrowGeneratorStateError, 1, 1) \ | 307 F(ThrowGeneratorStateError, 1, 1) \ |
| 310 \ | 308 \ |
| 311 /* ES5 */ \ | 309 /* ES5 */ \ |
| 312 F(ObjectFreeze, 1, 1) \ | 310 F(ObjectFreeze, 1, 1) \ |
| 313 \ | 311 \ |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 345 F(MapSet, 3, 1) \ | 343 F(MapSet, 3, 1) \ |
| 346 F(MapGetSize, 1, 1) \ | 344 F(MapGetSize, 1, 1) \ |
| 347 \ | 345 \ |
| 348 /* Harmony weak maps and sets */ \ | 346 /* Harmony weak maps and sets */ \ |
| 349 F(WeakCollectionInitialize, 1, 1) \ | 347 F(WeakCollectionInitialize, 1, 1) \ |
| 350 F(WeakCollectionGet, 2, 1) \ | 348 F(WeakCollectionGet, 2, 1) \ |
| 351 F(WeakCollectionHas, 2, 1) \ | 349 F(WeakCollectionHas, 2, 1) \ |
| 352 F(WeakCollectionDelete, 2, 1) \ | 350 F(WeakCollectionDelete, 2, 1) \ |
| 353 F(WeakCollectionSet, 3, 1) \ | 351 F(WeakCollectionSet, 3, 1) \ |
| 354 \ | 352 \ |
| 353 /* Harmony events */ \ |
| 354 F(SetMicrotaskPending, 1, 1) \ |
| 355 \ |
| 355 /* Harmony observe */ \ | 356 /* Harmony observe */ \ |
| 356 F(IsObserved, 1, 1) \ | 357 F(IsObserved, 1, 1) \ |
| 357 F(SetIsObserved, 1, 1) \ | 358 F(SetIsObserved, 1, 1) \ |
| 358 F(SetObserverDeliveryPending, 0, 1) \ | |
| 359 F(GetObservationState, 0, 1) \ | 359 F(GetObservationState, 0, 1) \ |
| 360 F(ObservationWeakMapCreate, 0, 1) \ | 360 F(ObservationWeakMapCreate, 0, 1) \ |
| 361 F(UnwrapGlobalProxy, 1, 1) \ | 361 F(UnwrapGlobalProxy, 1, 1) \ |
| 362 F(IsAccessAllowedForObserver, 3, 1) \ | 362 F(IsAccessAllowedForObserver, 3, 1) \ |
| 363 \ | 363 \ |
| 364 /* Harmony typed arrays */ \ | 364 /* Harmony typed arrays */ \ |
| 365 F(ArrayBufferInitialize, 2, 1)\ | 365 F(ArrayBufferInitialize, 2, 1)\ |
| 366 F(ArrayBufferGetByteLength, 1, 1)\ | 366 F(ArrayBufferGetByteLength, 1, 1)\ |
| 367 F(ArrayBufferSliceImpl, 3, 1) \ | 367 F(ArrayBufferSliceImpl, 3, 1) \ |
| 368 F(ArrayBufferIsView, 1, 1) \ | 368 F(ArrayBufferIsView, 1, 1) \ |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 432 F(InitializeConstGlobal, 2, 1) \ | 432 F(InitializeConstGlobal, 2, 1) \ |
| 433 F(InitializeConstContextSlot, 3, 1) \ | 433 F(InitializeConstContextSlot, 3, 1) \ |
| 434 F(OptimizeObjectForAddingMultipleProperties, 2, 1) \ | 434 F(OptimizeObjectForAddingMultipleProperties, 2, 1) \ |
| 435 \ | 435 \ |
| 436 /* Debugging */ \ | 436 /* Debugging */ \ |
| 437 F(DebugPrint, 1, 1) \ | 437 F(DebugPrint, 1, 1) \ |
| 438 F(DebugTrace, 0, 1) \ | 438 F(DebugTrace, 0, 1) \ |
| 439 F(TraceEnter, 0, 1) \ | 439 F(TraceEnter, 0, 1) \ |
| 440 F(TraceExit, 1, 1) \ | 440 F(TraceExit, 1, 1) \ |
| 441 F(Abort, 2, 1) \ | 441 F(Abort, 2, 1) \ |
| 442 F(AbortJS, 1, 1) \ |
| 442 /* Logging */ \ | 443 /* Logging */ \ |
| 443 F(Log, 2, 1) \ | 444 F(Log, 2, 1) \ |
| 444 /* ES5 */ \ | 445 /* ES5 */ \ |
| 445 F(LocalKeys, 1, 1) \ | 446 F(LocalKeys, 1, 1) \ |
| 446 /* Cache suport */ \ | 447 /* Cache suport */ \ |
| 447 F(GetFromCache, 2, 1) \ | 448 F(GetFromCache, 2, 1) \ |
| 448 \ | 449 \ |
| 449 /* Message objects */ \ | 450 /* Message objects */ \ |
| 450 F(MessageGetStartPosition, 1, 1) \ | 451 F(MessageGetStartPosition, 1, 1) \ |
| 451 F(MessageGetScript, 1, 1) \ | 452 F(MessageGetScript, 1, 1) \ |
| (...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 822 static bool SetupArrayBufferAllocatingData( | 823 static bool SetupArrayBufferAllocatingData( |
| 823 Isolate* isolate, | 824 Isolate* isolate, |
| 824 Handle<JSArrayBuffer> array_buffer, | 825 Handle<JSArrayBuffer> array_buffer, |
| 825 size_t allocated_length, | 826 size_t allocated_length, |
| 826 bool initialize = true); | 827 bool initialize = true); |
| 827 | 828 |
| 828 static void FreeArrayBuffer( | 829 static void FreeArrayBuffer( |
| 829 Isolate* isolate, | 830 Isolate* isolate, |
| 830 JSArrayBuffer* phantom_array_buffer); | 831 JSArrayBuffer* phantom_array_buffer); |
| 831 | 832 |
| 833 enum TypedArrayId { |
| 834 // arrayIds below should be synchromized with typedarray.js natives. |
| 835 ARRAY_ID_UINT8 = 1, |
| 836 ARRAY_ID_INT8 = 2, |
| 837 ARRAY_ID_UINT16 = 3, |
| 838 ARRAY_ID_INT16 = 4, |
| 839 ARRAY_ID_UINT32 = 5, |
| 840 ARRAY_ID_INT32 = 6, |
| 841 ARRAY_ID_FLOAT32 = 7, |
| 842 ARRAY_ID_FLOAT64 = 8, |
| 843 ARRAY_ID_UINT8C = 9 |
| 844 }; |
| 845 |
| 846 static void ArrayIdToTypeAndSize(int array_id, |
| 847 ExternalArrayType *type, size_t *element_size); |
| 848 |
| 832 // Helper functions used stubs. | 849 // Helper functions used stubs. |
| 833 static void PerformGC(Object* result, Isolate* isolate); | 850 static void PerformGC(Object* result, Isolate* isolate); |
| 834 | 851 |
| 835 // Used in runtime.cc and hydrogen's VisitArrayLiteral. | 852 // Used in runtime.cc and hydrogen's VisitArrayLiteral. |
| 836 static Handle<Object> CreateArrayLiteralBoilerplate( | 853 static Handle<Object> CreateArrayLiteralBoilerplate( |
| 837 Isolate* isolate, | 854 Isolate* isolate, |
| 838 Handle<FixedArray> literals, | 855 Handle<FixedArray> literals, |
| 839 Handle<FixedArray> elements); | 856 Handle<FixedArray> elements); |
| 840 }; | 857 }; |
| 841 | 858 |
| 842 | 859 |
| 843 //--------------------------------------------------------------------------- | 860 //--------------------------------------------------------------------------- |
| 844 // Constants used by interface to runtime functions. | 861 // Constants used by interface to runtime functions. |
| 845 | 862 |
| 846 class AllocateDoubleAlignFlag: public BitField<bool, 0, 1> {}; | 863 class AllocateDoubleAlignFlag: public BitField<bool, 0, 1> {}; |
| 847 class AllocateTargetSpace: public BitField<AllocationSpace, 1, 3> {}; | 864 class AllocateTargetSpace: public BitField<AllocationSpace, 1, 3> {}; |
| 848 | 865 |
| 849 class DeclareGlobalsEvalFlag: public BitField<bool, 0, 1> {}; | 866 class DeclareGlobalsEvalFlag: public BitField<bool, 0, 1> {}; |
| 850 class DeclareGlobalsNativeFlag: public BitField<bool, 1, 1> {}; | 867 class DeclareGlobalsNativeFlag: public BitField<bool, 1, 1> {}; |
| 851 class DeclareGlobalsLanguageMode: public BitField<LanguageMode, 2, 2> {}; | 868 class DeclareGlobalsLanguageMode: public BitField<LanguageMode, 2, 2> {}; |
| 852 | 869 |
| 853 } } // namespace v8::internal | 870 } } // namespace v8::internal |
| 854 | 871 |
| 855 #endif // V8_RUNTIME_H_ | 872 #endif // V8_RUNTIME_H_ |
| OLD | NEW |