| Index: src/objects.h
|
| diff --git a/src/objects.h b/src/objects.h
|
| index 65dc8bb4814d6fc094facd8959e506485c80ddf2..01c0e6f6faca8ad967a76646077e3f686615c7d6 100644
|
| --- a/src/objects.h
|
| +++ b/src/objects.h
|
| @@ -2043,14 +2043,14 @@ class JSReceiver: public HeapObject {
|
| Handle<Name> key,
|
| Handle<Object> value,
|
| PropertyAttributes attributes,
|
| - StrictModeFlag strict_mode,
|
| + StrictMode strict_mode,
|
| StoreFromKeyed store_mode =
|
| MAY_BE_STORE_FROM_KEYED);
|
| static Handle<Object> SetElement(Handle<JSReceiver> object,
|
| uint32_t index,
|
| Handle<Object> value,
|
| PropertyAttributes attributes,
|
| - StrictModeFlag strict_mode);
|
| + StrictMode strict_mode);
|
|
|
| // Implementation of [[HasProperty]], ECMA-262 5th edition, section 8.12.6.
|
| static inline bool HasProperty(Handle<JSReceiver> object, Handle<Name> name);
|
| @@ -2123,7 +2123,7 @@ class JSReceiver: public HeapObject {
|
| Handle<Name> key,
|
| Handle<Object> value,
|
| PropertyAttributes attributes,
|
| - StrictModeFlag strict_mode,
|
| + StrictMode strict_mode,
|
| StoreFromKeyed store_from_keyed);
|
|
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(JSReceiver);
|
| @@ -2236,14 +2236,14 @@ class JSObject: public JSReceiver {
|
| Handle<Name> name,
|
| Handle<Object> value,
|
| Handle<JSObject> holder,
|
| - StrictModeFlag strict_mode);
|
| + StrictMode strict_mode);
|
|
|
| static Handle<Object> SetPropertyWithInterceptor(
|
| Handle<JSObject> object,
|
| Handle<Name> name,
|
| Handle<Object> value,
|
| PropertyAttributes attributes,
|
| - StrictModeFlag strict_mode);
|
| + StrictMode strict_mode);
|
|
|
| static Handle<Object> SetPropertyForResult(
|
| Handle<JSObject> object,
|
| @@ -2251,7 +2251,7 @@ class JSObject: public JSReceiver {
|
| Handle<Name> name,
|
| Handle<Object> value,
|
| PropertyAttributes attributes,
|
| - StrictModeFlag strict_mode,
|
| + StrictMode strict_mode,
|
| StoreFromKeyed store_mode = MAY_BE_STORE_FROM_KEYED);
|
|
|
| static Handle<Object> SetLocalPropertyIgnoreAttributes(
|
| @@ -2433,13 +2433,13 @@ class JSObject: public JSReceiver {
|
|
|
| static Handle<Object> SetFastElement(Handle<JSObject> object, uint32_t index,
|
| Handle<Object> value,
|
| - StrictModeFlag strict_mode,
|
| + StrictMode strict_mode,
|
| bool check_prototype);
|
|
|
| static Handle<Object> SetOwnElement(Handle<JSObject> object,
|
| uint32_t index,
|
| Handle<Object> value,
|
| - StrictModeFlag strict_mode);
|
| + StrictMode strict_mode);
|
|
|
| // Empty handle is returned if the element cannot be set to the given value.
|
| static Handle<Object> SetElement(
|
| @@ -2447,7 +2447,7 @@ class JSObject: public JSReceiver {
|
| uint32_t index,
|
| Handle<Object> value,
|
| PropertyAttributes attributes,
|
| - StrictModeFlag strict_mode,
|
| + StrictMode strict_mode,
|
| bool check_prototype = true,
|
| SetPropertyMode set_mode = SET_PROPERTY);
|
|
|
| @@ -2768,13 +2768,13 @@ class JSObject: public JSReceiver {
|
| uint32_t index,
|
| Handle<Object> value,
|
| Handle<JSObject> holder,
|
| - StrictModeFlag strict_mode);
|
| + StrictMode strict_mode);
|
| static Handle<Object> SetElementWithInterceptor(
|
| Handle<JSObject> object,
|
| uint32_t index,
|
| Handle<Object> value,
|
| PropertyAttributes attributes,
|
| - StrictModeFlag strict_mode,
|
| + StrictMode strict_mode,
|
| bool check_prototype,
|
| SetPropertyMode set_mode);
|
| static Handle<Object> SetElementWithoutInterceptor(
|
| @@ -2782,7 +2782,7 @@ class JSObject: public JSReceiver {
|
| uint32_t index,
|
| Handle<Object> value,
|
| PropertyAttributes attributes,
|
| - StrictModeFlag strict_mode,
|
| + StrictMode strict_mode,
|
| bool check_prototype,
|
| SetPropertyMode set_mode);
|
| static Handle<Object> SetElementWithCallbackSetterInPrototypes(
|
| @@ -2790,20 +2790,20 @@ class JSObject: public JSReceiver {
|
| uint32_t index,
|
| Handle<Object> value,
|
| bool* found,
|
| - StrictModeFlag strict_mode);
|
| + StrictMode strict_mode);
|
| static Handle<Object> SetDictionaryElement(
|
| Handle<JSObject> object,
|
| uint32_t index,
|
| Handle<Object> value,
|
| PropertyAttributes attributes,
|
| - StrictModeFlag strict_mode,
|
| + StrictMode strict_mode,
|
| bool check_prototype,
|
| SetPropertyMode set_mode = SET_PROPERTY);
|
| static Handle<Object> SetFastDoubleElement(
|
| Handle<JSObject> object,
|
| uint32_t index,
|
| Handle<Object> value,
|
| - StrictModeFlag strict_mode,
|
| + StrictMode strict_mode,
|
| bool check_prototype = true);
|
|
|
| // Searches the prototype chain for property 'name'. If it is found and
|
| @@ -2815,14 +2815,14 @@ class JSObject: public JSReceiver {
|
| Handle<Name> name,
|
| Handle<Object> value,
|
| PropertyAttributes attributes,
|
| - StrictModeFlag strict_mode,
|
| + StrictMode strict_mode,
|
| bool* done);
|
| static Handle<Object> SetPropertyPostInterceptor(
|
| Handle<JSObject> object,
|
| Handle<Name> name,
|
| Handle<Object> value,
|
| PropertyAttributes attributes,
|
| - StrictModeFlag strict_mode);
|
| + StrictMode strict_mode);
|
| static Handle<Object> SetPropertyUsingTransition(
|
| Handle<JSObject> object,
|
| LookupResult* lookup,
|
| @@ -2835,7 +2835,7 @@ class JSObject: public JSReceiver {
|
| Handle<Name> name,
|
| Handle<Object> value,
|
| bool check_prototype,
|
| - StrictModeFlag strict_mode);
|
| + StrictMode strict_mode);
|
|
|
| // Add a property to an object.
|
| static Handle<Object> AddProperty(
|
| @@ -2843,7 +2843,7 @@ class JSObject: public JSReceiver {
|
| Handle<Name> name,
|
| Handle<Object> value,
|
| PropertyAttributes attributes,
|
| - StrictModeFlag strict_mode,
|
| + StrictMode strict_mode,
|
| StoreFromKeyed store_mode = MAY_BE_STORE_FROM_KEYED,
|
| ExtensibilityCheck extensibility_check = PERFORM_EXTENSIBILITY_CHECK,
|
| ValueType value_type = OPTIMAL_REPRESENTATION,
|
| @@ -4313,13 +4313,11 @@ class ScopeInfo : public FixedArray {
|
| // Does this scope call eval?
|
| bool CallsEval();
|
|
|
| - // Return the language mode of this scope.
|
| - LanguageMode language_mode();
|
| + // Return the strict mode of this scope.
|
| + StrictMode strict_mode();
|
|
|
| // Does this scope make a sloppy eval call?
|
| - bool CallsSloppyEval() {
|
| - return CallsEval() && (language_mode() == SLOPPY_MODE);
|
| - }
|
| + bool CallsSloppyEval() { return CallsEval() && strict_mode() == SLOPPY; }
|
|
|
| // Return the total number of locals allocated on the stack and in the
|
| // context. This includes the parameters that are allocated in the context.
|
| @@ -4493,9 +4491,9 @@ class ScopeInfo : public FixedArray {
|
| // Properties of scopes.
|
| class ScopeTypeField: public BitField<ScopeType, 0, 3> {};
|
| class CallsEvalField: public BitField<bool, 3, 1> {};
|
| - class LanguageModeField: public BitField<LanguageMode, 4, 2> {};
|
| - class FunctionVariableField: public BitField<FunctionVariableInfo, 6, 2> {};
|
| - class FunctionVariableMode: public BitField<VariableMode, 8, 3> {};
|
| + class StrictModeField: public BitField<StrictMode, 4, 1> {};
|
| + class FunctionVariableField: public BitField<FunctionVariableInfo, 5, 2> {};
|
| + class FunctionVariableMode: public BitField<VariableMode, 7, 3> {};
|
|
|
| // BitFields representing the encoded information for context locals in the
|
| // ContextLocalInfoEntries part.
|
| @@ -6907,20 +6905,9 @@ class SharedFunctionInfo: public HeapObject {
|
| // spending time attempting to optimize it again.
|
| DECL_BOOLEAN_ACCESSORS(optimization_disabled)
|
|
|
| - // Indicates the language mode of the function's code as defined by the
|
| - // current harmony drafts for the next ES language standard. Possible
|
| - // values are:
|
| - // 1. SLOPPY_MODE - Unrestricted syntax and semantics, same as in ES5.
|
| - // 2. STRICT_MODE - Restricted syntax and semantics, same as in ES5.
|
| - // 3. EXTENDED_MODE - Only available under the harmony flag, not part of ES5.
|
| - inline LanguageMode language_mode();
|
| - inline void set_language_mode(LanguageMode language_mode);
|
| -
|
| - // Indicates whether the language mode of this function is SLOPPY_MODE.
|
| - inline bool is_sloppy_mode();
|
| -
|
| - // Indicates whether the language mode of this function is EXTENDED_MODE.
|
| - inline bool is_extended_mode();
|
| + // Indicates the language mode.
|
| + inline StrictMode strict_mode();
|
| + inline void set_strict_mode(StrictMode strict_mode);
|
|
|
| // False if the function definitely does not allocate an arguments object.
|
| DECL_BOOLEAN_ACCESSORS(uses_arguments)
|
| @@ -7169,7 +7156,6 @@ class SharedFunctionInfo: public HeapObject {
|
| kLiveObjectsMayExist,
|
| kOptimizationDisabled,
|
| kStrictModeFunction,
|
| - kExtendedModeFunction,
|
| kUsesArguments,
|
| kHasDuplicateParameters,
|
| kNative,
|
| @@ -7214,26 +7200,18 @@ class SharedFunctionInfo: public HeapObject {
|
| static const int kStrictModeBitWithinByte =
|
| (kStrictModeFunction + kCompilerHintsSmiTagSize) % kBitsPerByte;
|
|
|
| - static const int kExtendedModeBitWithinByte =
|
| - (kExtendedModeFunction + kCompilerHintsSmiTagSize) % kBitsPerByte;
|
| -
|
| static const int kNativeBitWithinByte =
|
| (kNative + kCompilerHintsSmiTagSize) % kBitsPerByte;
|
|
|
| #if __BYTE_ORDER == __LITTLE_ENDIAN
|
| static const int kStrictModeByteOffset = kCompilerHintsOffset +
|
| (kStrictModeFunction + kCompilerHintsSmiTagSize) / kBitsPerByte;
|
| - static const int kExtendedModeByteOffset = kCompilerHintsOffset +
|
| - (kExtendedModeFunction + kCompilerHintsSmiTagSize) / kBitsPerByte;
|
| static const int kNativeByteOffset = kCompilerHintsOffset +
|
| (kNative + kCompilerHintsSmiTagSize) / kBitsPerByte;
|
| #elif __BYTE_ORDER == __BIG_ENDIAN
|
| static const int kStrictModeByteOffset = kCompilerHintsOffset +
|
| (kCompilerHintsSize - 1) -
|
| ((kStrictModeFunction + kCompilerHintsSmiTagSize) / kBitsPerByte);
|
| - static const int kExtendedModeByteOffset = kCompilerHintsOffset +
|
| - (kCompilerHintsSize - 1) -
|
| - ((kExtendedModeFunction + kCompilerHintsSmiTagSize) / kBitsPerByte);
|
| static const int kNativeByteOffset = kCompilerHintsOffset +
|
| (kCompilerHintsSize - 1) -
|
| ((kNative + kCompilerHintsSmiTagSize) / kBitsPerByte);
|
| @@ -7987,7 +7965,7 @@ class CompilationCacheTable: public HashTable<CompilationCacheShape,
|
| Object* Lookup(String* src, Context* context);
|
| Object* LookupEval(String* src,
|
| Context* context,
|
| - LanguageMode language_mode,
|
| + StrictMode strict_mode,
|
| int scope_position);
|
| Object* LookupRegExp(String* source, JSRegExp::Flags flags);
|
| MUST_USE_RESULT MaybeObject* Put(String* src,
|
| @@ -9609,7 +9587,7 @@ class JSProxy: public JSReceiver {
|
| Handle<Name> name,
|
| Handle<Object> value,
|
| PropertyAttributes attributes,
|
| - StrictModeFlag strict_mode,
|
| + StrictMode strict_mode,
|
| bool* done);
|
|
|
| MUST_USE_RESULT PropertyAttributes GetPropertyAttributeWithHandler(
|
| @@ -9660,12 +9638,12 @@ class JSProxy: public JSReceiver {
|
| Handle<Name> name,
|
| Handle<Object> value,
|
| PropertyAttributes attributes,
|
| - StrictModeFlag strict_mode);
|
| + StrictMode strict_mode);
|
| static Handle<Object> SetElementWithHandler(Handle<JSProxy> proxy,
|
| Handle<JSReceiver> receiver,
|
| uint32_t index,
|
| Handle<Object> value,
|
| - StrictModeFlag strict_mode);
|
| + StrictMode strict_mode);
|
|
|
| static bool HasPropertyWithHandler(Handle<JSProxy> proxy, Handle<Name> name);
|
| static bool HasElementWithHandler(Handle<JSProxy> proxy, uint32_t index);
|
|
|