                 if n.callee.name isnt "%invokeClosure"
                         throw "new expressions may only have a callee of %invokeClosure, callee = #{n.callee.name}"
                         
-                intrinsicHandler = @ejs_intrinsics[n.callee.name.slice 1]
+                unescapedName = n.callee.name.slice 1
+                intrinsicHandler = @ejs_intrinsics[unescapedName]
                 if not intrinsicHandler
                         throw "Internal error: ctor should not be null"
 
-                intrinsicHandler.call @, n, true
+                intrinsicHandler.call @, n, @opencode_intrinsics[unescapedName], true
 
         visitThisExpression: (n) ->
                 debug.log "visitThisExpression"

                        throw new Error "emitEjsvalTo not implemented for this case"
                        
                
        emitLoadSpecops: (obj) ->
                if opencode_intrinsics and @options.target_pointer_size is 64
                        # %1 = getelementptr inbounds %struct._EJSObject* %obj, i64 0, i32 1
                        # %specops_load = load %struct.EJSSpecOps** %1, align 8, !tbaa !0
                        specops_slot = ir.createInBoundsGetElementPointer obj, [(consts.int64 0), (consts.int32 1)], "specops_slot"

                else
                        ir.createCall @ejs_runtime.typeof_is_function, [@visitOrNull exp.arguments[0]], "is_function"

        handleTypeofIsSymbol: (exp, opencode) ->
                if opencode and @options.target_pointer_size is 64
                        insertBlock = ir.getInsertBlock()
                        insertFunc  = insertBlock.parent
                        
