git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
Merge remote-tracking branch 'pure11/pure11' into native
commitfa7b69a2da5de84509cee4c74953192a1ab71dda authorAndy Arvanitis <andyarvanitis@gmail.com> dateMon 8 May 2017, 17:33 (9 years ago) parentff4866a00b51f9
1 file changed+7−3
src/Language/PureScript/CodeGen/Cpp.hs+7−3
src/Language/PureScript/CodeGen/Cpp.hs+7−3
@@ -371,9 +371,13 @@ moduleToCpp otherOpts env (Module _ mn imps _ foreigns decls) = do
371371 valueToCpp (Literal _ (ObjectLiteral ps)) =
372372 CppRecordLiteral <$>
373373 mapM (sndM valueToCpp) ((\(k, v) -> (CppStringLiteral k, v)) <$> ps)
374− valueToCpp (Accessor (_, _, Just _, _) prop val) = CppRecordGet <$> pure prop <*> valueToCpp val
375− valueToCpp (Accessor _ prop val) = CppDictGet <$> pure (CppSymbol prop) <*> valueToCpp val
376−
374+ valueToCpp (Accessor ann1 prop val@(Var ann2 (Qualified Nothing _)))
375+ | ann1 == nullAnn && ann2 == nullAnn
376+ = CppDictGet <$> pure (CppSymbol prop) <*> valueToCpp val
377+ valueToCpp (Accessor _ prop val)
378+ | C.__superclass_ `isPrefixOf` codePoints prop
379+ = CppDictGet <$> pure (CppSymbol prop) <*> valueToCpp val
380+ valueToCpp (Accessor _ prop val) = CppRecordGet <$> pure prop <*> valueToCpp val
377381 valueToCpp (ObjectUpdate _ o ps) = do
378382 obj <- valueToCpp o
379383 updates <- mapM (sndM valueToCpp) ps