[JS IR BE]: support dynamic_var["foo"] = "bar"

Used EQ origin to detect. Added a test to check dynamic_var = "bar" case
is not affected
This commit is contained in:
Anton Bannykh
2018-10-09 19:41:49 +03:00
parent 7afb81a7df
commit 8c6337f3f6
37 changed files with 8 additions and 36 deletions
@@ -260,7 +260,7 @@ class IntrinsicifyCallsLowering(private val context: JsIrBackendContext) : FileL
put(Name.identifier("equals"), ::transformEqualsMethodCall)
}
dynamicCallOriginToIrFunction.run {
dynamicCallOriginToIrFunction.apply {
put(IrStatementOrigin.EXCL, context.intrinsics.jsNot)
put(IrStatementOrigin.LT, context.intrinsics.jsLt)
@@ -296,6 +296,8 @@ class IntrinsicifyCallsLowering(private val context: JsIrBackendContext) : FileL
put(IrStatementOrigin.POSTFIX_INCR, context.intrinsics.jsPostfixInc)
put(IrStatementOrigin.POSTFIX_DECR, context.intrinsics.jsPostfixDec)
put(IrStatementOrigin.GET_ARRAY_ELEMENT, context.intrinsics.jsArrayGet)
// TODO add a special statement origin, e.g. SET_ARRAY_ELEMENT
put(IrStatementOrigin.EQ, context.intrinsics.jsArraySet)
}
}