You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Disable obj-type spec for Init*LetFld and Init*ConstFld opcodes
The lowerer doesn't expect InitLetFld to be obj-type speced. While it is
legal to obj-type spec InitLetFld and changing the lowerer would be one
way to fix this issue, it would not be performant as we don't share types
of activation objects yet, leading to repeated Obj-type spec bailouts for
InitLetFld. Same reasoning applies to other opcodes Init*LetFld and
Init*ConstFld opcodes.
MACRO_WMS( InitConst, Reg2, OpTempNumberTransfer|OpTempObjectTransfer|OpNonIntTransfer|OpCanCSE) // Create and initialize 'const' as property of global object
304
304
MACRO_WMS( InitConstSlot, ElementSlot, None)
305
-
MACRO_WMS( InitLetFld, ElementCP, OpSideEffect|OpHasImplicitCall|OpFastFldInstr|OpPostOpDbgBailOut) // Declare a property with an initial value
306
-
MACRO_WMS( InitRootLetFld, ElementRootCP, OpSideEffect|OpHasImplicitCall|OpFastFldInstr|OpPostOpDbgBailOut) // Declare a property with an initial value
307
-
MACRO_WMS( InitConstFld, ElementCP, OpSideEffect|OpHasImplicitCall|OpFastFldInstr|OpPostOpDbgBailOut) // Declare a property with an initial value
308
-
MACRO_WMS( InitRootConstFld, ElementRootCP, OpSideEffect|OpHasImplicitCall|OpFastFldInstr|OpPostOpDbgBailOut) // Declare a property with an initial value
305
+
306
+
// Re-evaluate following 4 opcodes and InitInnerLetFld for obj type spec and inline cache lookup when we add sharing of types having properties with non-default
307
+
// attributes. Currently, these opcodes are used to set properties on scope objects, whose types we do not share as all their properties are non-configurable
308
+
MACRO_WMS( InitLetFld, ElementCP, OpSideEffect|OpHasImplicitCall|OpPostOpDbgBailOut) // Declare a property with an initial value
309
+
MACRO_WMS( InitRootLetFld, ElementRootCP, OpSideEffect|OpHasImplicitCall|OpPostOpDbgBailOut) // Declare a property with an initial value
310
+
MACRO_WMS( InitConstFld, ElementCP, OpSideEffect|OpHasImplicitCall|OpPostOpDbgBailOut) // Declare a property with an initial value
311
+
MACRO_WMS( InitRootConstFld, ElementRootCP, OpSideEffect|OpHasImplicitCall|OpPostOpDbgBailOut) // Declare a property with an initial value
312
+
309
313
MACRO_WMS( InitClassMember, ElementCP, OpSideEffect|OpHasImplicitCall|OpPostOpDbgBailOut) // Class member
310
314
MACRO_EXTEND_WMS( InitClassMemberComputedName,ElementI, OpSideEffect|OpHasImplicitCall|OpPostOpDbgBailOut) // Class member with computed property name
311
315
MACRO_EXTEND_WMS( InitClassMemberSet, ElementC, OpSideEffect|OpHasImplicitCall|OpPostOpDbgBailOut) // Class member in set syntax
MACRO_WMS_PROFILED_OP( StRootFldStrict, ElementRootCP, OpSideEffect|OpHasImplicitCall|OpFastFldInstr|OpPostOpDbgBailOut) // Store into ScriptObject instance's direct field (strict mode, x = ..., access to let/const on root object)
357
361
MACRO_WMS_PROFILED_OP( InitFld, ElementCP, OpSideEffect|OpHasImplicitCall|OpFastFldInstr|OpPostOpDbgBailOut) // Declare a property with an initial value
358
362
MACRO_WMS_PROFILED_OP( InitLocalFld, ElementP, OpSideEffect|OpHasImplicitCall|OpFastFldInstr|OpPostOpDbgBailOut) // Declare a property with an initial value
359
-
MACRO_EXTEND_WMS( InitLocalLetFld, ElementP, OpSideEffect|OpHasImplicitCall|OpFastFldInstr|OpPostOpDbgBailOut) // Declare a property with an initial value
363
+
MACRO_EXTEND_WMS( InitLocalLetFld, ElementP, OpSideEffect|OpHasImplicitCall|OpPostOpDbgBailOut) // Declare a property with an initial value
360
364
MACRO_EXTEND_WMS( InitInnerFld, ElementPIndexed,OpSideEffect|OpHasImplicitCall|OpFastFldInstr|OpPostOpDbgBailOut) // Declare a property with an initial value
361
-
MACRO_EXTEND_WMS( InitInnerLetFld, ElementPIndexed,OpSideEffect|OpHasImplicitCall|OpFastFldInstr|OpPostOpDbgBailOut) // Declare a property with an initial value
365
+
MACRO_EXTEND_WMS( InitInnerLetFld, ElementPIndexed,OpSideEffect|OpHasImplicitCall|OpPostOpDbgBailOut)// Declare a property with an initial value
362
366
MACRO_WMS_PROFILED_OP( InitRootFld, ElementRootCP, OpSideEffect|OpHasImplicitCall|OpFastFldInstr|OpPostOpDbgBailOut) // Declare a property with an initial value
0 commit comments